ما يعادل 'صديق' الكلمات الرئيسية في C حاد ؟
-
22-07-2019 - |
سؤال
ما يعادل 'صديق' الكلمات الرئيسية في C حاد ؟
كيف يمكنني استخدام "الداخلية" الكلمة ؟
لقد قرأت أن 'الداخلية' الكلمات الرئيسية هو استبدال "صديق" في C#.
أنا باستخدام DLL في C# المشاريع التي لدي مصدر رمز وحتى الآن أنا لا أريد أن تعديل التعليمات البرمجية الموجودة.لقد ورثت فئة يمكنني استخدام بلدي ورثت فئة أي طريقة تريد.المشكلة هي أن معظم التعليمات البرمجية في فئة الأم حماية الطرق.سوف باستخدام صديق بطريقة تجعل من الممكن الوصول أو الاتصال هذه المحمية الأساليب ؟
المحلول
يمكنك استخدام الكلمات الرئيسية الوصول إلى معدل
internal
إلى إعلان نوع أو نوع الأعضاء كما يمكن الوصول إلى التعليمات البرمجية في نفس الجمعية فقط.يمكنك استخدام
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 / الملكية علامة الداخلية كما لو كان العام أن الجمعية جمعت في القطاع الخاص إلى أي جمعيات أخرى
وسوف فئة فرعية الخاص بك سيكون قادرا على الوصول إلى أعضاء محمية من الطبقة التي ترث.
هل تبحث منح حق الوصول إلى هذه الحماية لأعضاء لفئة أخرى؟
والداخلية هي ما يعادل صديق. متاح فقط ضمن نفس الفئة أو من ارث طريقة المحمية. إذا كنت تحاول فضح أساليب المحمية من وارثا، يمكنك التفاف عليها في طرق العامة.