首頁 > 後端開發 > C++ > 方法應該傳回 Null 或空集合嗎?

方法應該傳回 Null 或空集合嗎?

Linda Hamilton
發布: 2025-01-25 15:01:09
原創
286 人瀏覽過

Should Methods Return Null or Empty Collections?

返回 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板