현재 값 비싼 초기화를 클래스 생성자에서 지연 초기화 된 (Lazy Initialized) 속성으로 옮기기 위해 널리 사용되는 클래스를 변경하고 있습니다.속성으로 지연 초기화하는 방법
하기 전에 :
public class ClassA
{
public readonly ClassB B;
public void ClassA()
{
B = new ClassB();
}
}
후 :
public class ClassA
{
private ClassB _b;
public ClassB B
{
get
{
if (_b == null)
{
_b = new ClassB();
}
return _b;
}
}
}
가 나는 변화하고있어 클래스에서 이러한 속성의 공정한 몇 가지 더, 일부 아래 (C#에서) 예입니다 어떤 맥락에서는 사용되지 않지만 (따라서 게으름), 사용된다면 반복적으로 호출 될 가능성이 있습니다.
불행히도 속성은 종종 클래스 내부에서도 사용됩니다. 즉, 개인 변수 (_b)가 초기화되지 않은 메소드에서 직접 사용될 가능성이 있음을 의미합니다.
클래스 내에서 공용 속성 (B) 만 사용할 수있는 방법이 있습니까? 아니면 필요에 따라 초기화 된 대체 방법을 사용할 수 있습니까?
이것은 (안 주관적만큼 분명히) 프로그래머에서 다시 게시 : https://softwareengineering.stackexchange.com/questions/34270/best-methods-for-lazy-initialization-with-properties
@chibacity : 감사합니다. –