如何检查动态对象是否为null



我最近看到了以下代码,这使我感到困惑。

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

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

可以直接检查动态的null,但某些情况可能会导致错误的答案。为了检查NULL的动态,您应该将其作为对象施放。例如,

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

为了检查此属性的null,您应该做类似的事情:

string.IsNullOrEmpty(Convert.ToString(post.Modified));

类似地,要检查一个null的动态,您应该做类似的事情:

if ((object)post != null)

参考:

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

https://forums.asp.net/t/1592751.aspx?how to to check for null empty empty sempty in dynamic dynamic objects

因此,通过检查resultobj.tostring()== null我相信这可能会将动态转换为对象,因此可以进行真实的null检查。

相关内容

  • 没有找到相关文章

最新更新