小编Zac*_*ary的帖子

C# 方法参数的 null 条件简写

当方法属于所讨论的对象时,空条件运算符非常有用,但是如果所讨论的对象是参数怎么办?例如,这个可以缩短吗?

var someList = new List<SomeType>();
if (anotherList.Find(somePredicate) != null)
{
    someList.Add(anotherList.Find(somePredicate))
}
Run Code Online (Sandbox Code Playgroud)

我想到的一个解决方案是使用如下扩展方法:

public static void AddTo<T>(this T item, List<T> list)
{
    list.Add(item);
}
Run Code Online (Sandbox Code Playgroud)

这样,第一个代码块可以减少为:

var someList = new List<SomeType>();
anotherList.Find(somePredicate)?.AddTo(someList);
Run Code Online (Sandbox Code Playgroud)

但此解决方案特定于本示例(即,如果对象不为空,则将对象添加到列表中)。是否有通用方法来指示如果参数为 null,则不应运行该方法?

c# null null-conditional-operator

5
推荐指数
1
解决办法
457
查看次数

标签 统计

c# ×1

null ×1

null-conditional-operator ×1