이 같은 클래스가 :파생 클래스가 기본 클래스에서 보호 된 getter에 액세스 할 수없는 이유는 무엇입니까?
public class Base
{
public Base(string name)
{
this.Name = name;
}
public string Name { get; set; }
public string PrettyName
{
get { return Prettify(Name); }
}
}
을 나는 그것에서 파생 :
public class Derived : Base
{
public Derived(Base b) : base(b.Name) { }
}
Name
속성을 액세스 할 수 없습니다한다 논리 이름은 PrettyName
에 의해서만 액세스되어야합니다. 나는이
public string Name { protected get; set; }
그러나납니다 : : 왜 그
Cannot access protected member 'Name' via a qualifier of type 'Base'; the qualifier must be of type 'Derived' (or derived from it)
이다 그래서 나는이 같은 속성을 만들 것이라고 생각? getter는 기본 클래스와 모든 하위 클래스에 노출되어야합니다. 내가 여기서 뭔가 잘못 됐어?
왜냐하면 예제 코드가 단순하고 실제 코드로 달성하고자하는 것은 새로운 객체에 'b'의 모든 속성 (단지 이름 이상)이 복사되기 때문이다. –