首页 > 后端开发 > C++ > C# 中返回集合的方法应该返回 Null 还是空集合吗?

C# 中返回集合的方法应该返回 Null 还是空集合吗?

Patricia Arquette
发布: 2025-01-25 15:06:11
原创
850 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板