C# 컬렉션 반환 값: null 또는 빈 컬렉션을 반환합니까?
컬렉션을 반환하는 메서드를 작성할 때 종종 문제에 직면합니다. null을 반환해야 할까요, 아니면 빈 컬렉션을 반환해야 할까요? C#에서는 항상 후자를 반환하는 것이 가장 좋습니다.
null을 반환하면 잠재적인 문제가 발생할 수 있습니다. 이 컬렉션을 사용하는 코드에서는 null 검사 및 예외가 발생하여 예기치 않은 동작이 발생할 수 있습니다. 다음 예를 고려해보세요.
<code class="language-csharp">if (myInstance.CollectionProperty != null) { foreach (var item in myInstance.CollectionProperty) { /* 此处可能出现问题 */ } }</code>
이러한 문제를 방지하려면 항상 빈 컬렉션을 반환하세요. 이렇게 하면 코드가 내용에 관계없이 컬렉션을 안전하게 처리할 수 있습니다.
속성의 경우 한 번 설정한 다음 변경하지 않고 그대로 두는 것이 가장 좋습니다. 다음 패턴을 사용하세요:
<code class="language-csharp">public List<foo> Foos { get; private set; } public Bar() { Foos = new List<foo>(); }</code>
.NET 4.6.1에서는 다음과 같이 단순화할 수 있습니다.
<code class="language-csharp">public List<foo> Foos { get; } = new List<foo>();</code>
열거 가능 유형을 반환하는 메서드의 경우 null 대신 빈 열거 가능 유형을 쉽게 반환할 수 있습니다.
<code class="language-csharp">public IEnumerable<foo> GetMyFoos() { return InnerGetFoos() ?? Enumerable.Empty<foo>(); }</code>
Enumerable.Empty<T>()
을 사용하는 것이 명시적으로 생성된 빈 컬렉션이나 배열을 반환하는 것보다 더 효율적입니다.
위 내용은 수집 회복 메소드가 C#에서 NULL 또는 빈 컬렉션을 반환해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!