대중에게 읽기가 많지만 상속자에게 쓸 수있는 속성을 구현하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/219904

  •  03-07-2019
  •  | 
  •  

문제

상속자에게 편지를 보내고 싶은 속성이 있지만 외부 적으로 읽기 위해 계속 유지하는 경우이를 구현하는 선호하는 방법은 무엇입니까? 나는 보통 이런 식으로 간다 :

private object m_myProp;
public object MyProp
{
    get { return m_myProp; }
}
protected void SetMyProp(object value)
{
    m_myProp = value;
}

더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

private object m_myProp;
public object MyProp
{
    get { return m_myProp; }
    protected set { m_myProp = value; }
}

또는 C# 3.0에서

public object MyProp {get; protected set;}

다른 팁

이것은 확실히가는 길입니다.

public object MyProp {get; protected set;}

C#의 이전 버전에 있다면 이것이가는 길입니다.

private object _myProp;
public object MyProp
{
    get { return _myProp; }
    protected set { _myProp = value; }
}

세터와 getter를 갖는 것이 해당 가시성 수준에서 변수를 갖는 것보다 더 나을 수는 없습니다.

따라서 변수 자체를 보호하고 독자를 공개 할 수 있습니다.

즉, 세터와 getters는 나쁜 oo의 지표입니다. 필요합니까? 당신은 멤버들과 무언가를하도록 물체에 물체를 요구하고, 회원을 요구하지 않고 물체 밖에서 조작하는 것을 요구해야합니다.

이것은 매우 일반적인 규칙이며 많은 예외가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top