সি # তে, সরকারী, ব্যক্তিগত, সুরক্ষিত এবং অ্যাক্সেস মডিফায়ার না থাকাতে পার্থক্য কী?


727

আমার সমস্ত কলেজ বছর আমি ব্যবহার করা হয়েছে public, এবং এর মধ্যে পার্থক্য জানতে চাই public, privateআর protected?

এছাড়াও staticকিছুই না থাকার বিরোধিতা কী করে ?

উত্তর:


1007

অ্যাক্সেস মডিফায়ারগুলি

ডকস.মাইক্রোসফট.কম থেকে :

public

প্রকার বা সদস্য একই সমাবেশ বা অন্য কোনও সমাবেশে উল্লেখ করা অন্য যে কোনও কোড দ্বারা অ্যাক্সেস করতে পারে।

private

ধরণ বা সদস্যটি কেবল একই শ্রেণি বা কাঠামোর কোড দ্বারা অ্যাক্সেস করা যায়।

protected

ধরণ বা সদস্যটি কেবল একই শ্রেণি বা কাঠামোয়, বা উত্পন্ন শ্রেণিতে কোড দ্বারা অ্যাক্সেস করা যায়।

private protected (সি # 7.2 এ যুক্ত)

প্রকার বা সদস্যটি কেবল একই শ্রেণি বা কাঠামোয় কোড দ্বারা, বা একই বিধানসভা থেকে প্রাপ্ত কোনও শ্রেণিতে, তবে অন্য সমাবেশ থেকে নয়।

internal

প্রকার বা সদস্য একই অ্যাসেমব্লির যে কোনও কোড দ্বারা অ্যাক্সেস করা যেতে পারে, তবে অন্য সমাবেশ থেকে নয়।

protected internal

প্রকার বা সদস্য একই অ্যাসেমব্লির যে কোনও কোড দ্বারা বা অন্য কোনও সমাবেশে প্রাপ্ত কোনও শ্রেণি দ্বারা অ্যাক্সেস করা যেতে পারে।

যখন কোনও অ্যাক্সেস মডিফায়ার সেট না করা হয়, তখন একটি ডিফল্ট অ্যাক্সেস মডিফায়ার ব্যবহৃত হয়। সুতরাং অ্যাক্সেস মডিফায়ারের কিছু ফর্ম সর্বদা থাকে যদি তা সেট না করা থাকে।

static পরিবর্তক

কোনও শ্রেণীর স্ট্যাটিক সংশোধকটির অর্থ শ্রেণিটি তাত্ক্ষণিকভাবে চালু করা যায় না এবং এর সদস্যরা সবাই স্থির থাকে। স্থির সদস্যের এর সংযুক্তকরণের প্রকারের কতগুলি উদাহরণ তৈরি হয় তা নির্বিশেষে একটি সংস্করণ রয়েছে।

একটি স্ট্যাটিক বর্গটি মূলত অ-স্থিত শ্রেণীর মতো, তবে একটি পার্থক্য রয়েছে: একটি স্ট্যাটিক শ্রেণি বাহ্যিকভাবে তাত্ক্ষণিকভাবে স্থাপন করা যায় না। অন্য কথায়, আপনি শ্রেণীর ধরণের একটি পরিবর্তনশীল তৈরি করতে নতুন কীওয়ার্ডটি ব্যবহার করতে পারবেন না। কোনও উদাহরণ ভেরিয়েবল না থাকায়, আপনি ক্লাসের নামটি ব্যবহার করে একটি স্ট্যাটিক শ্রেণীর সদস্যদের অ্যাক্সেস করেন।

তবে, স্ট্যাটিক কনস্ট্রাক্টরের মতো একটি জিনিস রয়েছে । অবিচলিত ক্লাস সহ যে কোনও শ্রেণির এর মধ্যে একটি থাকতে পারে। তাদের সরাসরি বলা যায় না এবং প্যারামিটার থাকতে পারে না (ক্লাসে কোনও ধরণের প্যারামিটার বাদে)। প্রথম দৃষ্টান্ত তৈরি হওয়ার আগে বা কোনও স্থির সদস্যের রেফারেন্স হওয়ার আগে ক্লাসটি শুরু করার জন্য একটি স্ট্যাটিক কনস্ট্রাক্টরকে স্বয়ংক্রিয়ভাবে ডাকা হয়। এটা এমন দেখতে:

static class Foo()
{
    static Foo()
    {
        Bar = "fubar";
    }

    public static string Bar { get; set; }
}

স্ট্যাটিক ক্লাসগুলি প্রায়শই পরিষেবা হিসাবে ব্যবহৃত হয়, আপনি এগুলি তাদের মতো ব্যবহার করতে পারেন:

MyStaticClass.ServiceMethod(...);

17
এবং আপনার অ স্থিত ক্লাসে স্ট্যাটিক পদ্ধতি থাকতে পারে, তাই না?
জন বুবরিস্কি

14
হ্যাঁ, তারা আমার উদাহরণের মতো আচরণ করবে।
mbillard

7
এই প্রসঙ্গে "সমাবেশ" শব্দটির অর্থ কী?
জোনাথন গ্লিসন

1
@gotoVoid আপনি গুগলে যা কিছু অনুসন্ধান করেছেন তা ভুল। এমএসডিএন অনুসারে সুরক্ষিত অভ্যন্তরীণ অর্থ হল, "যে ধরণের সদস্য বা সদস্যটি যে সমাবেশে ঘোষণা করা হয়েছে তার কোনও কোড দ্বারা বা অন্য কোনও সমাবেশে উত্পন্ন শ্রেণীর মধ্যে থেকে অ্যাক্সেস করা যেতে পারে" "
কেভিন

2
সুরক্ষিত এবং ব্যক্তিগত সুরক্ষিত মধ্যে পার্থক্য কি? আমার কাছে, এটি উভয়ই
একরকম

161

একটি গ্রাফিকাল ওভারভিউ (সংক্ষেপে সংক্ষিপ্তসার)

দৃষ্টিপাত

যেহেতু স্ট্যাটিক ক্লাসগুলি সিল করা হয়েছে, সেগুলি উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে না (অবজেক্ট ব্যতীত), তাই সুরক্ষিত কীওয়ার্ডটি স্থির শ্রেণিতে অবৈধ।



ডিফল্টগুলির জন্য যদি আপনি সামনে অ্যাক্সেস মডিফায়ার না রাখেন তবে এখানে দেখুন:
সি # ক্লাস এবং সদস্যদের (ক্ষেত্র, পদ্ধতি ইত্যাদি) জন্য ডিফল্ট দৃশ্যমানতা?

অ নেস্টেড

enum                              public
non-nested classes / structs      internal
interfaces                        internal
delegates in namespace            internal
class/struct member(s)            private
delegates nested in class/struct  private

নেস্টেড:

nested enum      public
nested interface public
nested class     private
nested struct    private

এছাড়াও, তাদের সিল-কীওয়ার্ড রয়েছে যা একটি শ্রেণিকে উত্তরাধিকারসূত্রে পরিণত করে না।
এছাড়াও, ভিবি.এনইটি-তে, কীওয়ার্ডগুলি কখনও কখনও আলাদা হয়, তাই এখানে একটি প্রতারণা-শীট:

ভিবি বনাম সিএস সমতুল্য


1
@ ᴇn বার্টিএল: আপনি কি নিশ্চিত? একটি ভিন্ন সমাবেশে উত্পন্ন শ্রেণি?
স্টিফান স্টেইগার

একই সমাবেশে আমরা উত্পন্ন ক্লাসটি করতে পারি, আমরা আলাদা করতে পারি না I আমি ভেবেছিলাম আপনারা একই সমাবেশে পছন্দ করেছেন ...
অরুন বার্টিল

1
@ ᴇn বার্টিএল: হুম, ঠিক আছে, এটি আসলে টুটা করা উচিত।
স্টিফান স্টেইগার

1
আমি মনে করি ডায়াগ্রামে একটি ত্রুটি আছে। যদি অভ্যন্তরীণ কোনও শ্রেণীর জন্য ব্যবহার করা হয় তবে ক্লাসটি একই সমাবেশে অন্য শ্রেণি দ্বারা উত্পন্ন হতে পারে। এছাড়াও যদি কোনও সম্পত্তিতে অভ্যন্তরীণ সংশোধক ব্যবহার করা হয়, তবে একই সম্পত্তিটিতে উত্পন্ন শ্রেণিতে এই সম্পত্তিটি অ্যাক্সেস করা যায়। সম্ভবত ডায়াগ্রামটি সঠিক কারণ কারণ "সমাবেশ" এর অধীনে "হ্যাঁ" রয়েছে তবে এটি "ভুল" শ্রেণীর অধীনে একটি "না" রয়েছে বলে ভুল বোঝাবুঝি হতে পারে।
এএইচ।

160

সর্বজনীন - আপনি যদি ক্লাসটি দেখতে পান তবে আপনি পদ্ধতিটি দেখতে পারেন

প্রাইভেট - আপনি যদি ক্লাসের অংশ হন তবে আপনি পদ্ধতিটি দেখতে পারবেন, অন্যথায় নয়।

সুরক্ষিত - বেসরকারী হিসাবে একই, পাশাপাশি সমস্ত বংশধররাও এই পদ্ধতিটি দেখতে পাবেন।

স্ট্যাটিক (ক্লাস) - "ক্লাস" এবং "অবজেক্ট" এর মধ্যে পার্থক্য মনে আছে? সব ভুলে যাও। "স্থিতিশীল" এর সাথে এগুলি একই ... শ্রেণিটি হ'ল তার একমাত্র এবং একমাত্র উদাহরণ।

স্ট্যাটিক (পদ্ধতি) - আপনি যখনই এই পদ্ধতিটি ব্যবহার করবেন, তখন এতে রেফারেন্সের একটি ফ্রেম থাকবে এটি শ্রেণীর প্রকৃত উদাহরণের চেয়ে আলাদা।


1
অ স্ট্যাটিক ক্লাসে আপনার স্ট্যাটিক পদ্ধতি থাকতে পারে না?
জন বুব্রিসকি

1
হ্যাঁ, তবে আমি স্ট্যাটিক ক্লাসের কথা বলছিলাম। স্থির পদ্ধতিগুলি বর্ণনা করতে আমি একটি পৃথক এন্ট্রি যুক্ত করেছি। ধরার জন্য ধন্যবাদ
জোসেফস্টাইন্স 17

2
সি # এর কথা বলার সময় 'অবজেক্ট' এখানে একটি ভাল শব্দ নাও হতে পারে, কারণ সমস্ত শ্রেণীর জন্য বেস-টাইপটি সিস্টেম।অবজেক্ট । 'দৃষ্টান্ত' একটি ভাল শব্দ বা 'অবজেক্ট' (ছোট হাতের 'ও') হবে।
লেডারডিড

@ লেস্টেরিড 'অবজেক্ট' 'সিস্টেম.অবজেক্ট' এর একটি নাম, এটি ব্যবহার করা খুব বিভ্রান্তিকর হতে পারে। 'উদাহরণ' আরও ভাল হবে, আমার ধারণা :)
ডিপিপি

একই নিয়ম স্ট্রাক্টের ক্ষেত্রে প্রযোজ্য।
gsharp

35

এই উত্তর থেকে দুর্দান্ত চিত্রটি পুনরায় পোস্ট করা ।

এখানে ভেন ডায়াগ্রামের সমস্ত অ্যাক্সেস মডিফায়ার রয়েছে, আরও সীমাবদ্ধ থেকে আরও প্রতারণাপূর্ণ:

private:
এখানে চিত্র বর্ণনা লিখুন

private protected: - সি # 7.2 এ যুক্ত হয়েছে
এখানে চিত্র বর্ণনা লিখুন

internal:
এখানে চিত্র বর্ণনা লিখুন

protected:
এখানে চিত্র বর্ণনা লিখুন

protected internal:
এখানে চিত্র বর্ণনা লিখুন

public:
এখানে চিত্র বর্ণনা লিখুন


24

এখানে চিত্র বর্ণনা লিখুন

using System;

namespace ClassLibrary1
{
    public class SameAssemblyBaseClass
    {
        public string publicVariable = "public";
        protected string protectedVariable = "protected";
        protected internal string protected_InternalVariable = "protected internal";
        internal string internalVariable = "internal";
        private string privateVariable = "private";
        public void test()
        {
            // OK
            Console.WriteLine(privateVariable);

            // OK
            Console.WriteLine(publicVariable);

            // OK
            Console.WriteLine(protectedVariable);

            // OK
            Console.WriteLine(internalVariable);

            // OK
            Console.WriteLine(protected_InternalVariable);
        }
    }

    public class SameAssemblyDerivedClass : SameAssemblyBaseClass
    {
        public void test()
        {
            SameAssemblyDerivedClass p = new SameAssemblyDerivedClass();

            // NOT OK
            // Console.WriteLine(privateVariable);

            // OK
            Console.WriteLine(p.publicVariable);

            // OK
            Console.WriteLine(p.protectedVariable);

            // OK
            Console.WriteLine(p.internalVariable);

            // OK
            Console.WriteLine(p.protected_InternalVariable);
        }
    }

    public class SameAssemblyDifferentClass
    {
        public SameAssemblyDifferentClass()
        {
            SameAssemblyBaseClass p = new SameAssemblyBaseClass();

            // OK
            Console.WriteLine(p.publicVariable);

            // OK
            Console.WriteLine(p.internalVariable);

            // NOT OK
            // Console.WriteLine(privateVariable);

            // Error : 'ClassLibrary1.SameAssemblyBaseClass.protectedVariable' is inaccessible due to its protection level
            //Console.WriteLine(p.protectedVariable);

            // OK
            Console.WriteLine(p.protected_InternalVariable);
        }
    }
}

 using System;
        using ClassLibrary1;
        namespace ConsoleApplication4

{
    class DifferentAssemblyClass
    {
        public DifferentAssemblyClass()
        {
            SameAssemblyBaseClass p = new SameAssemblyBaseClass();

            // NOT OK
            // Console.WriteLine(p.privateVariable);

            // NOT OK
            // Console.WriteLine(p.internalVariable);

            // OK
            Console.WriteLine(p.publicVariable);

            // Error : 'ClassLibrary1.SameAssemblyBaseClass.protectedVariable' is inaccessible due to its protection level
            // Console.WriteLine(p.protectedVariable);

            // Error : 'ClassLibrary1.SameAssemblyBaseClass.protected_InternalVariable' is inaccessible due to its protection level
            // Console.WriteLine(p.protected_InternalVariable);
        }
    }

    class DifferentAssemblyDerivedClass : SameAssemblyBaseClass
    {
        static void Main(string[] args)
        {
            DifferentAssemblyDerivedClass p = new DifferentAssemblyDerivedClass();

            // NOT OK
            // Console.WriteLine(p.privateVariable);

            // NOT OK
            //Console.WriteLine(p.internalVariable);

            // OK
            Console.WriteLine(p.publicVariable);

            // OK
            Console.WriteLine(p.protectedVariable);

            // OK
            Console.WriteLine(p.protected_InternalVariable);

            SameAssemblyDerivedClass dd = new SameAssemblyDerivedClass();
            dd.test();
        }
    }
}

1
গত পাঁচ বছর থেকে এই উত্তরটি আরও অনেক উত্তর জুড়ে কী দেখছে তা আমি দেখতে পাচ্ছি না।
জন স্যান্ডার্স

4
এটি কেবল একটি সাধারণ ব্যাখ্যা। যেমন অন্যান্য উত্তরগুলি কিছুটা বিভ্রান্তিকর এবং অর্ধ জবাব দেওয়া হয়েছে :)
নরোত্তম গিয়াল

4
@ জন সান্ডার্স: এটি একটি শ্রেণীর মধ্যে একই শ্রেণীর এবং একই শ্রেণীর একটি পৃথক সমাবেশে থাকার কারণে একটি উত্পন্ন শ্রেণীর জন্য দৃশ্যমানতা পৃথক করে পৃথক করে। এছাড়াও তিনি তার নমুনা কোড দেখিয়ে কীভাবে সে তথ্যটি পেয়েছিলেন তা সরবরাহ করে। সুতরাং এটি অন্যান্য উত্তরগুলিতে যুক্ত হয়। আমার উত্তরটিতে আমার মন্তব্যে সম্ভবত তার নেক্রোমেন্সিং ট্রিগার হয়েছিল।
স্টিফান স্টেইগার

2
"বিভিন্ন সমাবেশে উত্পন্ন শ্রেণি" - এটি ইতিমধ্যে অন্য উত্তরে প্রদত্ত চার্টের মান যোগ করে। পার্থক্যটি বিশেষত "সুরক্ষিত অভ্যন্তরীণ" এর ক্ষেত্রে সহায়ক
নির্মান

আমি এই চার্টটি আমার পক্ষে বোঝার পক্ষে সবচেয়ে সহজ বলে মনে করি। এই বর্তমানটিকে (সি # 7.2 সহ) রাখতে, যোগ করার জন্য Private Protectedএটি হবে: একই শ্রেণি = Yes, একই সমাবেশ, উত্পন্ন শ্রেণি = Yes, একই সমাবেশ, যে কোনও শ্রেণি = NO, বিভিন্ন সমাবেশ, উত্পন্ন শ্রেণি = NO, বিভিন্ন সমাবেশ, যে কোনও শ্রেণি = NO। আর একটি অতিরিক্ত পরামর্শ protected internalহ'ল শব্দের ক্রম পরিবর্তন করা উচিত নয় , কারণ এটি @ ব্যবহারকারী 1810087 এর উত্তর থেকে নিউমোনিককে ভেঙে দেয়
ইন্ট্রাস্টেলার এক্সপ্লোরার

22

কিছুই না প্রশ্ন সম্পর্কে

  • নেমস্পেসের ধরণগুলি ডিফল্টরূপে অভ্যন্তরীণ
  • নেস্টেড টাইপ সহ যে কোনও ধরণের সদস্য ডিফল্টরূপে ব্যক্তিগত

15

তবুও বর্তমান অ্যাক্সেস সংশোধকটির আরও একটি ভিজ্যুয়াল পদ্ধতি (সি # 7.2)। আশা করি স্কিমাটি এটি সহজ মনে রাখতে সহায়তা করে
(ইন্টারেক্টিভ ভিউয়ের জন্য চিত্রটিতে ক্লিক করুন))

ইন্টারেক্টিভ অ্যাক্সেস মডিফায়ার্স এসভিজি

বাইরে ভিতরে

আপনি যদি দ্বি-শব্দযুক্ত অ্যাক্সেস সংশোধকগুলি মনে রাখার জন্য লড়াই করে থাকেন তবে বাইরে ভিতরে মনে রাখবেন ।

  • ব্যক্তিগত সুরক্ষিত : প্রাইভেট বাইরে (একই সমাবেশ) ভিতরে সুরক্ষিত (একই সমাবেশ)
  • সংরক্ষিত অভ্যন্তরীণ : সংরক্ষিত বাহিরে (একই সমাবেশ) অভ্যন্তরীণ ভিতরে (একই সমাবেশ)

11

হুম।

এখানে দেখুন: অ্যাক্সেস মোডিফায়ার্স

সংক্ষেপে:

সর্বজনীন পদ্ধতি বা অন্য প্রকার / শ্রেণীর থেকে সম্পূর্ণ দৃশ্যমানতা টাইপ করে।

প্রাইভেট কেবল প্রাইভেট পদ্ধতি / চলক অ্যাক্সেস বেসরকারী পদ্ধতি / ভেরিয়েবল অ্যাক্সেসের ধরণ (মেনে নিন যে নেস্টেড ক্লাসগুলিতে ব্যক্তিগত শ্রেণিবদ্ধ ব্যক্তিগত পদ্ধতি / ভেরিয়েবলগুলি অ্যাক্সেস রয়েছে)।

সুরক্ষিত বেসরকারী অনুরূপ উদ্ভূত শ্রেণিগুলি ছাড়াও সুরক্ষিত পদ্ধতিতে অ্যাক্সেস করতে পারে।

"কিছুই না" VB.NET এর নালার সমতুল্য। যদিও আপনি যদি "কিছুই না" যার অর্থ "অ্যাক্সেস মডিফায়ার নয়" অর্থাত্, তবে এটি নির্ভর করে, যদিও থাম্বের একটি খুব রুক্ষ নিয়ম (অবশ্যই সি # তে) যদি আপনি স্পষ্টভাবে কোনও অ্যাক্সেস মডিফায়ার নির্দিষ্ট না করেন তবে পদ্ধতি / পরিবর্তনশীল ঘোষণাটি যতটা সম্ভব সীমাবদ্ধ থাকে । অর্থাত

public class MyClass
{
    string s = "";
}

কার্যকরভাবে হিসাবে একই:

public class MyClass
{
    private string s = "";
}

লিঙ্কযুক্ত এমএসডিএন নিবন্ধটি সম্পূর্ণরূপে বর্ণনার প্রস্তাব করবে যখন কোনও অ্যাক্সেস মডিফায়ার স্পষ্টভাবে নির্দিষ্ট করা হয়নি।


8

সর্বজনীন - যে কোনও জায়গায় যে কেউ অ্যাক্সেস করতে পারেন।
প্রাইভেট - ক্লাসের সাথেই এটি প্রবেশ করা যায় এটির একটি অংশ।
সুরক্ষিত - কেবল ক্লাসে বা ক্লাসের বাইরে উত্তরাধিকার সূত্রে প্রাপ্ত কোনও বস্তু দিয়েই অ্যাক্সেস করা যায়।

কিছুই নালার মতো নয় কিন্তু ভিবিতে।
স্ট্যাটিক মানে আপনার সেই অবজেক্টের একটি উদাহরণ রয়েছে, সেই শ্রেণীর প্রতিটি উদাহরণের জন্য পদ্ধতি।


4

MMM ...

স্ট্যাটিক মানে আপনি ক্লাসের উদাহরণ না রেখেই সেই ফাংশনটি অ্যাক্সেস করতে পারবেন।

আপনি ক্লাস সংজ্ঞা থেকে সরাসরি অ্যাক্সেস করতে পারেন।


4

প্রাইভেটের একটি স্থিতি নির্দেশ করে যে ভেরিয়েবলগুলি কেবল একই শ্রেণীর বস্তু দ্বারা অ্যাক্সেস করা যায়। সুরক্ষিত স্থিতি শ্রেণীর বংশধরদেরও অন্তর্ভুক্ত করার অ্যাক্সেসকে প্রসারিত করে।

"উপরের টেবিল থেকে আমরা বেসরকারী এবং সুরক্ষিত মধ্যে পার্থক্য দেখতে পাচ্ছি ... আমি মনে করি উভয়ই এক রকম .... সুতরাং এই দুটি পৃথক কমান্ডের কী দরকার"

আরও তথ্যের জন্য এমএসডিএন লিঙ্কটি পরীক্ষা করুন


3

এই অ্যাক্সেস পরিবর্তনকারীরা আপনার সদস্যদের কোথায় দৃশ্যমান তা নির্দিষ্ট করে। আপনার সম্ভবত এটি পড়া উচিত। আইয়েনএমএইচ প্রদত্ত লিঙ্কটি একটি সূচনা পয়েন্ট হিসাবে ধরুন।

স্ট্যাটিক সদস্যরা প্রতি ক্লাসে একজন এবং উদাহরণ হিসাবে এক নয়।


3

সাবধানতার সাথে আপনার ক্লাসগুলির অ্যাক্সেসযোগ্যতা দেখুন। সর্বজনীন এবং সুরক্ষিত শ্রেণি এবং পদ্ধতিগুলি ডিফল্টরূপে প্রত্যেকের জন্য অ্যাক্সেসযোগ্য।

এছাড়াও ভিজ্যুয়াল স্টুডিওতে নতুন ক্লাস তৈরি করা হলে মাইক্রোসফ্ট অ্যাক্সেস মডিফায়ারগুলি (সর্বজনীন, সুরক্ষিত, ইত্যাদি। কীওয়ার্ড) দেখানোর ক্ষেত্রে খুব একটা ব্যাখ্যা দেয় না। সুতরাং, ভাল যত্ন নিন এবং আপনার শ্রেণীর অ্যাক্সেসযোগ্যতার বিষয়ে চিন্তা করুন কারণ এটি আপনার বাস্তবায়নের অভ্যন্তরগুলির দ্বার।


2

আমি মনে করি এটি ভাল ওওপি ডিজাইনের সাথে সম্পর্কিত। আপনি যদি কোনও গ্রন্থাগারের বিকাশকারী হন তবে আপনি আপনার লাইব্রেরির অভ্যন্তরীণ কাজকর্মগুলি গোপন করতে চান। এইভাবে, আপনি পরে আপনার লাইব্রেরির অভ্যন্তরীণ কাজগুলি সংশোধন করতে পারেন। সুতরাং আপনি নিজের সদস্যদের এবং সহায়ক পদ্ধতিগুলি ব্যক্তিগত হিসাবে রেখেছেন এবং কেবল ইন্টারফেসের পদ্ধতিগুলিই সর্বজনীন। ওভাররাইট করা উচিত এমন পদ্ধতিগুলি সুরক্ষিত করা উচিত।


1

সি # এর মোট 6 অ্যাক্সেস সংশোধক রয়েছে:

ব্যক্তিগত : এই অ্যাক্সেসিবিলিটির সাথে ঘোষিত সদস্যটি ধারণিত ধরণের মধ্যে দৃশ্যমান হতে পারে, এটি কোনও উত্পন্ন ধরণের, একই সমাবেশে অন্য ধরণের বা ধারণকৃত সমাবেশের বাইরের প্রকারের জন্য দৃশ্যমান নয়। উদাহরণস্বরূপ, অ্যাক্সেস কেবলমাত্র রয়েছে এমন টাইপের মধ্যে সীমাবদ্ধ।

সুরক্ষিত : এই অ্যাক্সেসিবিলিটির সাথে ঘোষিত সদস্যটি উপস্থিত বিধানসভাটির মধ্যে থাকা রক্ষণশীল প্রকার থেকে প্রাপ্ত প্রকারগুলির এবং উপস্থিত বিধানের বাইরে থাকা উপাদানগুলি থেকে প্রাপ্ত ধরণের মধ্যে দৃশ্যমান হতে পারে। অর্থাত, অ্যাক্সেসটি ধারণক্ষম ধরণের ধরণের উত্সের মধ্যে সীমাবদ্ধ।

অভ্যন্তরীণ : এই অ্যাক্সেসিবিলিটি সহ ঘোষিত সদস্যটি এই সদস্যযুক্ত অ্যাসেমব্লির অভ্যন্তরে দৃশ্যমান হতে পারে, এটি ধারণামূলক সমাবেশের বাইরের কোনও সমাবেশে দৃশ্যমান নয়। অর্থাত্, অ্যাক্সেস কেবল সমাবেশ সম্বলিত সীমাবদ্ধ।

অভ্যন্তরীণ সুরক্ষিত : এই অ্যাক্সেসিবিলিটির সাথে ঘোষিত সদস্যটি উপস্থিত বিধানসভার অভ্যন্তরের অভ্যন্তরে বা এর বাইরে থাকা উপাদানগুলি থেকে উদ্ভূত প্রকারের মধ্যে দৃশ্যমান হতে পারে, এটি উপস্থিত সমাবেশের মধ্যে কোনও প্রকারের কাছেও দৃশ্যমান। অর্থাত্ অ্যাক্সেস কেবল সমাবেশ বা উদ্ভূত প্রকারের মধ্যে সীমাবদ্ধ।

সর্বজনীন : এই অ্যাক্সেসিবিলিটি সহ ঘোষিত সদস্যটি এই সদস্য সমন্বিত সমাবেশের মধ্যে দৃশ্যমান হতে পারে বা যে কোনও সমাবেশ রয়েছে যা সম্বলিত সমাবেশকে উল্লেখ করে। যেমন, অ্যাক্সেস সীমাবদ্ধ নয়।

সি # 7.2 অ্যাক্সেসযোগ্যতার একটি নতুন স্তর যুক্ত করছে:

ব্যক্তিগত সুরক্ষিত : এই অ্যাক্সেসিবিলিটি সহ ঘোষিত সদস্যটি সমন্বিত সমাবেশের মধ্যে এই ধারণকৃত ধরণ থেকে প্রাপ্ত প্রকারের মধ্যে দৃশ্যমান হতে পারে। এটি কোনও ধরণের ধারণক্ষম প্রকার থেকে উদ্ভূত নয় বা উপস্থিত সমাবেশের বাইরে দৃশ্যমান নয়। অর্থাত, অ্যাক্সেসটি সমন্বিত সমাবেশের মধ্যে উদ্ভূত প্রকারের মধ্যে সীমাবদ্ধ।

নতুন ব্যক্তিগত সুরক্ষিত অ্যাক্সেস মডিফায়ারের একটি নমুনা কোড সহ উত্স


0

সি # এর জন্য সমস্ত অ্যাক্সেস মডিফায়ারের বিবরণ

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.