Ключевое слово protected
является модификатором доступа участника.Член protected
доступен из класса, в котором он объявлен, и из любого элемента class
, полученного из class
, объявившего этот элемент.
public class A
{
public int x;
public static void F(A a, B b)
{
a.x = 1;
b.x = 1;
}
}
public class B : A
{
public static void F(A a, B b)
{
a.x = 1;
b.x = 1;
}
}
Почему я переопределилэто с public
модификатором доступа.Модификатор protected
имеет ограниченный доступ к наследованию class
блоков.
Class A {
protected int x = 0;
}
Class B : A {
private void SomeFunc() {
Console.WriteLine(this.x.ToString()); // This will work!
}
}
Но если вы попытаетесь получить доступ к x
, вы ничего не получите в B
.
B b = new B();
b.x; // Got nothing in IntelliSense
Видите, мы получили доступ к x
в функции B
, но его экземпляр не имеет доступа к x
.