Sid*_*dhi 10 c# null dynamic tostring
最近看到下面的代码,让我很困惑。
dynamic resultObj = SomeClass.run(arg);
if (resultObj == null || resultObj.ToString() == null)
{
/* Error handling */
}
Run Code Online (Sandbox Code Playgroud)
假设SomeClass
是您的典型类(不会覆盖ToString()
),是否有理由需要条件的第二部分?另外,这段代码是否还有其他潜在的问题?
Pat*_*ott 12
可以直接检查动态是否为空,但某些情况可能会导致错误答案。为了检查动态是否为空,您应该将其转换为对象。例如,
dynamic post = SomeMethod();
if (post.modified == null){
//could return errors.
}
Run Code Online (Sandbox Code Playgroud)
为了检查此属性是否为空,您应该执行以下操作:
string.IsNullOrEmpty(Convert.ToString(post.Modified));
Run Code Online (Sandbox Code Playgroud)
类似地,要检查动态是否为空,您应该执行以下操作:
if ((object)post != null)
Run Code Online (Sandbox Code Playgroud)
参考:
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 我相信这可以将动态转换为对象,从而启用真正的 null 检查。
归档时间: |
|
查看次数: |
19950 次 |
最近记录: |