나는 여러 개의 평면 멤버와 여러 개의 중첩 된 복합 유형이있는 복잡한 C# 클래스를 사용합니다."중첩 된"개체 초기화
일반적으로 데이터가없는 경우 "중첩 된"복합 유형을 초기화하지 않습니다. I 클래스
Public class Person
{
public string FirstName{get;set;}
public Address{get;set;}
}
이있는 경우 내가 그러나 Person p = new Person(){FirstName="Test", Address = new Address()};
하지 않을 것이다 예를 들어
는, 나는이해야 내 의견으로는, 비록 "모든 하위"복잡한 유형을 초기화하라고 해요 대소 문자를 구분하지 마십시오. 데이터가 없는데 왜 메모리를 할당해야합니까? 객체가 비어 있는지 여부는 어떻게 결정합니까? 모든 값을 비교합니까/일종의 지연을 정의하거나 빈 인스턴스를 나타 내기 위해 특수 하위 클래스를 정의 했습니까?
귀하의 의견은 높이 평가됩니다.
은 어쩌면 당신은 canuse을을 NullObjectpattern : http://en.wikipedia.org/wiki/Null_Object_pattern – JleruOHeP
참조 http://www.infoq.com/presentations/Null- References-The-billion-dollar-Mistake-Tony-Hoare 및 http://c2.com/cgi/wiki?PrematureOptimization, 필요하지 않은 공간을 예약해서는 안되는 직관력은 아마 조기 범주에 속할 것입니다 최적화, 부작용으로 인해 null 참조 예외가 발생할 가능성이 커지는 전화 코드가 많이 남습니다. –