728x90
반응형
질문 : null 또는 빈 컬렉션을 반환하는 것이 더 낫습니까?
그것은 일종의 일반적인 질문입니다 (하지만 저는 C #을 사용하고 있습니다), 가장 좋은 방법은 무엇입니까 (모범 사례), 반환 형식으로 컬렉션이있는 메서드에 대해 null 또는 빈 컬렉션을 반환합니까?
답변
컬렉션이 비어 있습니다. 항상.
이것은 짜증납니다.
if(myInstance.CollectionProperty != null)
{
foreach(var item in myInstance.CollectionProperty)
/* arrgh */
}
컬렉션 또는 열거 형을 반환 할 때 null
을 반환하지 않는 것이 가장 좋은 방법입니다. 항상 빈 열거 가능 / 컬렉션을 반환합니다. 앞서 말한 말도 안되는 소리를 방지하고 동료와 클래스 사용자가 차를 알지 못하게합니다.
속성에 대해 이야기 할 때는 항상 속성을 한 번 설정하고 잊어 버리십시오.
public List<Foo> Foos {public get; private set;}
public Bar() { Foos = new List<Foo>(); }
.NET 4.6.1에서는이를 상당히 압축 할 수 있습니다.
public List<Foo> Foos { get; } = new List<Foo>();
열거 형을 반환하는 메서드에 대해 이야기 할 때 null
대신 빈 열거 형을 쉽게 반환 할 수 있습니다.
public IEnumerable<Foo> GetMyFoos()
{
return InnerGetFoos() ?? Enumerable.Empty<Foo>();
}
Enumerable.Empty<T>()
은 예를 들어 새로운 빈 컬렉션 또는 배열을 반환하는 것보다 더 효율적으로 볼 수 있습니다.
출처 : https://stackoverflow.com/questions/1969993/is-it-better-to-return-null-or-empty-collection
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript에서 HTTP GET 요청 하는 방법 (0) | 2021.12.19 |
---|---|
단어가 포함되지 않은 줄과 일치하는 정규식 (0) | 2021.12.16 |
자바스크립트 문자열의 첫 번째 문자를 얻는 방법 (0) | 2021.12.16 |
JavaScript를 사용하여 문자열에서 공백을 제거하는 방법 (0) | 2021.12.15 |
JavaScript 창 크기 조정 이벤트를 연결하는 방법 (0) | 2021.12.15 |