gpt4 book ai didi

c# - 如何检查动态对象是否为空

转载 作者:行者123 更新时间:2023-12-04 17:54:39 25 4
gpt4 key购买 nike

最近看到下面的代码,让我很困惑。

dynamic resultObj = SomeClass.run(arg);
if (resultObj == null || resultObj.ToString() == null)
{
/* Error handling */
}

假设 SomeClass是您的典型类(不覆盖 ToString() ),是否有必要使用条件的第二部分?此外,此代码是否存在其他潜在问题?

最佳答案

可以直接检查动态是否为空,但某些情况可能会导致错误答案。为了检查动态是否为空,您应该将其转换为对象。例如,

dynamic post = SomeMethod();
if (post.modified == null){
//could return errors.
}

为了检查此属性是否为空,您应该执行以下操作: string.IsNullOrEmpty(Convert.ToString(post.Modified));

同样,要检查动态是否为空,您应该执行以下操作:
if ((object)post != null)

引用:

https://ericlippert.com/2018/11/19/a-dynamic-definite-assignment-puzzle-part-2/

https://forums.asp.net/t/1592751.aspx?How+to+check+for+null+empty+strings+on+dynamic+objects+

因此,通过检查 resultObj.ToString() == null 我相信这可以将动态转换为对象,从而启用真正的空检查。

关于c# - 如何检查动态对象是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41353430/

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