首頁 > 後端開發 > C++ > C# 中傳回集合的方法應該傳回 Null 還是空集合嗎?

C# 中傳回集合的方法應該傳回 Null 還是空集合嗎?

Patricia Arquette
發布: 2025-01-25 15:06:11
原創
852 人瀏覽過

Should Collection-Returning Methods Return Null or an Empty Collection in C#?

C# 集合回傳值:傳回 null 還是空集合?

在寫傳回集合的方法時,常常會遇到一個問題:是傳回 null 還是傳回空集合?在 C# 中,最佳實踐建議始終返回後者。

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

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