프로그래밍 언어/HTML,CSS,JS

null 또는 빈 컬렉션을 반환하는 것이 효율적인가?

Rateye 2021. 12. 16. 09:42
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
반응형