سؤال

ما يعادل 'صديق' الكلمات الرئيسية في C حاد ؟

كيف يمكنني استخدام "الداخلية" الكلمة ؟

لقد قرأت أن 'الداخلية' الكلمات الرئيسية هو استبدال "صديق" في C#.

أنا باستخدام DLL في C# المشاريع التي لدي مصدر رمز وحتى الآن أنا لا أريد أن تعديل التعليمات البرمجية الموجودة.لقد ورثت فئة يمكنني استخدام بلدي ورثت فئة أي طريقة تريد.المشكلة هي أن معظم التعليمات البرمجية في فئة الأم حماية الطرق.سوف باستخدام صديق بطريقة تجعل من الممكن الوصول أو الاتصال هذه المحمية الأساليب ؟

هل كانت مفيدة؟

المحلول

  1. يمكنك استخدام الكلمات الرئيسية الوصول إلى معدل internal إلى إعلان نوع أو نوع الأعضاء كما يمكن الوصول إلى التعليمات البرمجية في نفس الجمعية فقط.

  2. يمكنك استخدام InternalsVisibleToAttribute فئة محددة في System.Rutime.CompilerServices إلى إعلان نوع كما يمكن الوصول إلى التعليمات البرمجية في نفس الجمعية أو محدد الجمعية فقط.

يمكنك استخدام الأولى كما يمكنك استخدام أي الوصول إلى معدل مثل private.إلى الطرافة:

internal class MyClass {
    ...
}

يمكنك استخدام الثانية على النحو التالي:

[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
    ...
}

كل من هذه يمكن أن تعتبر بحق أي ما يعادل friend في C#.

الأساليب التي هي protected متاحة بالفعل إلى الفئات المشتقة.

نصائح أخرى

لا، "الداخلية" ليست هي نفسها بأنها "صديق" (على الأقل 'صديق' وC ++)

ويحدد صديق أن هذه الفئة يمكن الوصول إليها إلا عن طريق واحد، فئة معينة.
يحدد الداخلية أن هذه الفئة يمكن الوصول إليها من قبل أي فئة في التجمع.

1) الداخلية هو C# equivelant من VB.NET 'صديق' الكلمة, كما كنت قد خمنت (بدلا من استبدال)

2) الاستخدام هي على النحو التالي

internal void Function() {}
internal Class Classname() {}
internal int myInt;
internal int MyProperty { get; set; }

3) الأساس هو الوصول إلى معدل ينص على أن إمكانية الوصول إلى فئة / وظيفة / vairiable / الملكية علامة الداخلية كما لو كان العام أن الجمعية جمعت في القطاع الخاص إلى أي جمعيات أخرى

وسوف فئة فرعية الخاص بك سيكون قادرا على الوصول إلى أعضاء محمية من الطبقة التي ترث.

هل تبحث منح حق الوصول إلى هذه الحماية لأعضاء لفئة أخرى؟

والداخلية هي ما يعادل صديق. متاح فقط ضمن نفس الفئة أو من ارث طريقة المحمية. إذا كنت تحاول فضح أساليب المحمية من وارثا، يمكنك التفاف عليها في طرق العامة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top