null 또는 빈 컬렉션 반환: 모범 사례
컬렉션을 반환 값 유형으로 반환하는 메서드를 설계할 때 다음과 같은 질문이 발생합니다. null을 반환해야 할까요, 아니면 빈 컬렉션을 반환해야 할까요? 모범 사례에서는 모든 경우에 빈 컬렉션을 반환할 것을 강력히 권장합니다.
왜 빈 컬렉션을 선택하나요?
null을 반환하는 것은 불필요한 코드 복잡성과 잠재적인 런타임 오류를 초래하므로 나쁜 습관입니다. 예를 들어 컬렉션 속성에 대해 null을 반환하는 경우:
if(myInstance.CollectionProperty != null)
{
foreach(var item in myInstance.CollectionProperty)
/* 如果 CollectionProperty 为 null,此代码可能会失败 */
}
myInstance.CollectionProperty가 실제로 null인 경우 이 코드는 예외를 일으킬 수 있습니다. 대신, 위의 코드가 오류 없이 계속 실행될 수 있도록 빈 컬렉션을 반환하는 것이 더 좋습니다.
속성 모범 사례
컬렉션을 반환하는 속성의 경우 속성을 한 번만 초기화하는 것이 좋습니다. 이는
속성을 포함하는 클래스의 생성자 동안 수행될 수 있습니다.public List Foos { public get; private set; }
public Bar() { Foos = new List(); }
C# 6에서는 보다 간결한 버전을 사용할 수 있습니다.
public List Foos { get; } = new List();
방법 모범 사례
컬렉션을 반환하는 메서드의 경우 실제 컬렉션이 없으면 빈 컬렉션이 반환됩니다. 이 목적으로 Enumerable.Empty
public IEnumerable GetMyFoos()
{
return InnerGetFoos() ?? Enumerable.Empty();
}
이 접근 방식을 사용하면 InnerGetFoos()가 null을 반환하더라도 메서드가 여전히 빈 컬렉션을 반환하여 잠재적인 오류를 방지할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3