الوصول إلى العضو الثاني (الميراث)
-
13-09-2019 - |
سؤال
إليك تخطيطي الحالي: (السؤال هو التعليق)
class A
{
int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Doesn't work
base.base.foo // Doesn't work, of course
}
}
كما ترون، لا أستطيع الوصول إلى أعضاء A
باستخدام base
في C. كيف يمكنني الوصول إليها؟ شكرا :)
المحلول
إذا قمت بإجراء حماية فو،
class A
{
protected int foo;
}
ثم قاعدة بسيطة ستفعل:
void bar()
{
//I want to access foo
base.foo; // will work now
// base.base.foo // Doesn't work, of course
}
ولكن سيكون من الأفضل بناء خاصية (محمية) حول فو:
class A
{
private int _foo;
protected int Foo
{
get { return _foo; }
set { _foo = value; }
}
}
نصائح أخرى
يتم الإعلان عن الحقل في أ. يجب أن تكون محمية لفئات مشتقة للوصول إليها.
وضع الجمهور أمام int foo؛
class A
{
public int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Now you can see it
}
}
بشكل افتراضي ما لم تحدد خلاف ذلك جميع الأعضاء خاصة.
لا تنتمي إلى StackOverflow