편집 : David's 대답을 수락했지만 Jon's 응답도 고려해야합니다.get 메소드의 값을 설정하는 기본 메소드 : 생성자와 백업 필드
읽기 전용 (get only?) 속성의 값을 설정할 때 선호되는 방법은 무엇입니까? 배킹 필드를 사용하거나 생성자를 사용합니까? 디자인이 필드가 아닌 속성에 대한 것으로 가정합니다 (나중에 필드를 사용하지 못하게하는 설정자가 속성에 있어야하는 업데이트가있을 수 있음).
다음과 같은 간단한 예가 주어지면 어떤 방법이 선호됩니까? 하나가 다른 것보다 선호된다면, 왜?
옵션 1 (배면 필드) :
class SomeObject
{
// logic
}
class Foo
{
private SomeObject _myObject;
public SomeObject MyObject
{
get
{
if(_myObject == null)
{
_myObject = new SomeObject();
}
return _myObject;
}
}
public Foo()
{
// logic
}
}
옵션 2 (생성자) :
그것은 필요로하는 시간에 따라class SomeObject
{
// logic
}
class Foo
{
public SomeObject MyObject { get; private set; }
public Foo()
{
MyObject = new SomeObject();
// logic
}
}
게으른 초기화에 대한 좋은 점. –