기본값 대 null - 더 나은 선택과 그 이유는 무엇입니까?

2786 단어 discussdotnetcsharp
일부 배경:
내가 직장에서 담당하는 프로젝트 중 일부는 기본적으로 매핑 프로젝트입니다. 우리는 어딘가에서 데이터를 소비하고 그것을 우리 자신의 유형에 매핑합니다.
이것은 궁극적으로 다른 소스의 데이터를 단일 데이터 저장소로 통합하고 변환하는 더 큰 프로세스의 일부입니다.

매핑의 일부로 다음과 같은 메서드가 있는 경우가 많습니다.

NormalizedData Normalize(RawData rawData)
{
    return new NormalizedData()
    {
        PropA = rawData.A,
        PropB = rawData.B,
        // more of the same here
    };
}


더 많은 데이터 소스가 정규화됨에 따라 NormalizedData의 구조가 변경되므로(안타깝게도 내 디자인이 아님) 추가되는 새 속성을 더 쉽게 처리할 수 있도록 하기 위해 모든 속성을 채우기로 결정했습니다. 정규화된 데이터 - 특정 데이터 소스와 관련이 없는 경우에도:

NormalizedData Normalize(RawData rawData)
{
    return new NormalizedData()
    {
        PropA = rawData.A,
        PropB = rawData.B,
        PropC = default,
        PropD = default,
        PropE = rawData.E,
        // more of the same here
    };
}


이제 - 질문은 다음과 같습니다.

PropC = default 또는 PropC = null을 사용해야 합니까?



참고로, 이러한 모든 속성을 초기화하지 않은 상태로 두는 것도 고려하는 옵션이지만 시스템이 충분히 안정될 경우에만 가능합니다. 현재 저는 이미 프로덕션 단계에 있는 프로젝트를 다시 방문하고 정규화 프로세스에 몇 가지 속성을 더 추가해야 하므로 이전 속성이 모두 이미 나열되어 있을 때 추가해야 하는 속성을 훨씬 쉽게 확인할 수 있습니다.

좋은 웹페이지 즐겨찾기