」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 方法應該傳回 Null 或空集合嗎?

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

發佈於2025-01-26
瀏覽:121

Should Methods Return Null or Empty Collections?

返回 null 還是空集合:最佳實踐

在設計返回集合作為傳回值類型的方法時,會產生一個問題:應該傳回 null 還是空集合?最佳實踐強烈建議在所有情況下都返回空集合。

為什麼選擇空集合?

傳回 null 是一種不好的實踐,因為它會導致不必要的程式碼複雜性和潛在的運行時錯誤。例如,如果您為集合屬性傳回 null:

if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}

如果 myInstance.CollectionProperty 確實為 null,則此程式碼可能會導致異常。相反,最好返回一個空集合,確保上述程式碼仍然可以無錯誤地執行。

屬性最佳實務

對於傳回集合的屬性,建議僅初始化一次該屬性。這可以在包含該屬性的類別的建構函式期間完成:

public List Foos { public get; private set; }

public Bar() { Foos = new List(); }

使用 C# 6,可以使用更簡潔的版本:

public List Foos { get; } = new List();

方法最佳實踐

對於傳回集合的方法,如果實際集合不存在,則傳回空集合。您可以為此目的使用 Enumerable.Empty() 方法:

public IEnumerable GetMyFoos()
{
  return InnerGetFoos() ?? Enumerable.Empty();
}

這種方法確保即使 InnerGetFoos() 傳回 null,方法仍然會傳回一個空集合,從而防止潛在的錯誤。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3