gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:17:56 24 4
gpt4 key购买 nike

空条件运算符在方法属于相关对象时非常有用,但如果相关对象是参数怎么办?例如,这可以缩短吗?

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

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

public static void AddTo<T>(this T item, List<T> list)
{
list.Add(item);
}

第一个代码块可以简化为:

var someList = new List<SomeType>();
anotherList.Find(somePredicate)?.AddTo(someList);

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

最佳答案

永远不要这样做

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

这将搜索列表两次,这是不必要的。请改用临时变量。

var someList = new List<SomeType>();
var find = anotherList.Find(somePredicate);
if (find != null) someList.Add(find);

Is there a general way to indicate that if a parameter is null, the method should not be run?

目前没有这样的功能。有没有其他替代方案比提供的其他答案更有效。

关于方法参数的 C# null 条件简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com