返回 null 還是空集合:最佳實踐
在設計返回集合作為返回值類型的方法時,會產生一個問題:應該返回 null 還是空集合?最佳實踐強烈建議在所有情況下都返回空集合。
為什麼選擇空集合?
返回 null 是一種不好的實踐,因為它會導致不必要的代碼複雜性和潛在的運行時錯誤。例如,如果您為集合屬性返回 null:
<code class="language-c#">if(myInstance.CollectionProperty != null) { foreach(var item in myInstance.CollectionProperty) /* 如果 CollectionProperty 为 null,此代码可能会失败 */ }</code>
如果 myInstance.CollectionProperty 確實為 null,此代碼可能會導致異常。相反,最好返回一個空集合,確保上述代碼仍然可以無錯誤地執行。
屬性最佳實踐
對於返回集合的屬性,建議僅初始化一次該屬性。這可以在包含該屬性的類的構造函數期間完成:
<code class="language-c#">public List<foo> Foos { public get; private set; } public Bar() { Foos = new List<foo>(); }</code>
使用 C# 6,可以使用更簡潔的版本:
<code class="language-c#">public List<foo> Foos { get; } = new List<foo>();</code>
方法最佳實踐
對於返回集合的方法,如果實際集合不存在,則返回空集合。您可以為此目的使用 Enumerable.Empty
<code class="language-c#">public IEnumerable<foo> GetMyFoos() { return InnerGetFoos() ?? Enumerable.Empty<foo>(); }</code>
這種方法確保即使 InnerGetFoos() 返回 null,該方法仍然會返回一個空集合,從而防止潛在的錯誤。
以上是方法應該傳回 Null 或空集合嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!