gpt4 book ai didi

C# NullReference 异常和 ReSharper 建议

转载 作者:太空狗 更新时间:2023-10-30 00:09:35 25 4
gpt4 key购买 nike

这是我写的:

if ((lstProperty[i].PropertyIdentifier as string).CompareTo("Name") == 0)

Resharper 给我一个错误(我是 ReSharper 的新手......我正在尝试)它提示我:

  if (((string) lstProperty[i].PropertyIdentifier).CompareTo("Name") == 0)

为什么第二个是 NullException 安全的?对我来说,如果出现 null 值,两者都会崩溃?

最佳答案

如果不能执行转换,'as' 运算符将返回 null,而如果不能转换,C 风格的转换将抛出异常。

我建议将其分解为多个语句:

string propertyIdentifier = lstProperty[u].PropertyIdentifier as string;
if(propertyIdentifier != null && propertyIdentifier.CompareTo("Name") == 0)
{
... your if statement ...
}

Resharper 不应该对此提示,如果 PropertyIdentifier 为 null 或不是字符串,您也不会得到 NullReferenceException。

关于C# NullReference 异常和 ReSharper 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/259018/

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