가능한 중복 :
Why can’t I access C# protected members except like this?C#의 인스턴스 멤버에 대한 액세스가 제한되어 있습니까?
나는이 코드를보고
(C#을 모두 까다로운 부분을 보여줍니다 특별한 주석 버전) 교류 # 책을 읽고 있었다으로 :
public class A
{
protected int x;
static void F(A a, B b)
{
a.x = 1; // Okay
b.x = 1; // Okay
}
}
public class B: A
{
static void F(A a, B b)
{
a.x = 1; // Error: must access through instance of B
b.x = 1; // Okay
}
}
meanning 있는지보고
:
질문
이 클래스에서 파생 된이 클래스 나 클래스에 제한
액세스하는 이유는 무엇입니까이 제한 (인스턴스를 통해) 존재 하는가?
은 허용되는 것처럼 문제가있는 상황의 예를 제공 할 수 있습니까?
이 예제는 msdn이며 중요한 부분을 제거했습니다. A에서는 A와 B의 인스턴스를 통해 x에 액세스 할 수 있습니다. 두 경우 모두 A의 인스턴스 또는 A. 그러나 B에서 A는 A의 인스턴스를 통해 x에 액세스 할 수 없습니다. A는 B에서 파생되지 않기 때문에 x에서 C를 유도 할 수도 있습니다. 당신은 현존하는 클래스 인스턴스 변수에 접근 할 수 있습니다. – Najzero