나는이 원리가 무엇인지, 어떻게 검색 할 지조차 모르겠다. 그래서 전에 사과했다면 진심으로 사과한다.하지만 그것을하는 가장 좋은 방법은 예를 든다.C#에서는 하위 클래스의 접근자를 숨기거나 수정할 수 있습니까?
class Properties
{
public string Name { get; set; }
}
class MyClass
{
class SubProperties: Properties
{
public override Name
{
get { return GetActualName(); }
set { SetActualName(value); }
}
}
public SubProperties ClassProperties;
private string GetActualName()
{
return SomeFunction();
}
private void SetActualName(string s)
{
ClassProperties.Name = SomeOtherFunction(s);
}
}
아이디어는 MyClass
가 완전히 액세스 특성 ClassProperties
을 인스턴스화 개체를하는 것입니다. 이 객체는 Properties 객체와 똑같은 모양을하지만 MyClass는 실제로 필드 결과를 계산하고 수정합니다. SubProperties
정의 내에서 GetActualName()
및 SetActualName()
에 액세스 할 수 없기 때문에이 선언 방법은 분명히 잘못되었습니다. 이런 식으로 어떻게하면 좋을까요?
이것은 내가 겪은 것처럼 보입니다. 유일한 차이점은 내 경우에는 MyClass에 private 변수 "name"이 없다는 것입니다. 실제로 소켓에 읽기/쓰기가 있지만 호출 객체에서 완전히 숨기고 싶습니다. 감사합니다. – Diego
완벽. 그것은 트릭을했다. – Diego