gpt4 book ai didi

c# - 调用方法时处理空对象

转载 作者:太空狗 更新时间:2023-10-29 22:22:24 25 4
gpt4 key购买 nike

我一直在四处寻找在调用方法(或方法链)时处理空对象的最佳可能选项。

我们通常的做法是检查 if 条件:

if ( customObject != null ) {
customObject.callMe();
}

可以通过使用扩展方法进一步改进:

Program customObject = null;
if (customObject.NotNull()) {
customObject.CallMe();
}

public static bool NotNull(this object o) {
return o == null;
}

请注意:我通常会忽略!从我的编程实践。因此,对我来说扩展方法是明智的选择。

但是,当涉及到Method链时,处理起来就变得非常复杂。

customObject.CallMe().CallMe2() ex... 

您认为如何在 C# 中处理它,以便仅当 customObject 不为 null 且 CallMe2 为 null 时才调用 CallMe仅当 CallMe 返回非空对象时调用。

当然我可以使用 If 条件或三元运算符。但是,我想知道 vNext,C#5.0 是否可以提供一些东西。

最佳答案

在即将推出的 C# 6 (vNext) 中,有 ?. 运算符(Null 条件运算符),它允许您轻松地对每个嵌套属性进行空引用检查。

这方面的一个例子是:

int? first = customers?.[0].Orders?.Count();

这是 Visual Studio UserVoice 站点中请求的功能

Add ?. Operator to C#

您可以在 Roslyn 的 Codeplex 站点上查看 C# 6.0 的所有新语言功能的状态:

C# 6 Language Features Status

关于c# - 调用方法时处理空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597312/

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