C# 也许不正确;可能';System.NullReferenceException'&引用;再竖琴中的小费
我想迭代一个列表并获取标签文本值。很明显,一切正常,除了Resharper tip。守则:C# 也许不正确;可能';System.NullReferenceException'&引用;再竖琴中的小费,c#,resources,resharper,C#,Resources,Resharper,我想迭代一个列表并获取标签文本值。很明显,一切正常,除了Resharper tip。守则: string someString = GetLocalResourceObject(GetNameAsResource(resourceKey)) != null ? GetLocalResourceObject(GetNameAsResource(resourceKey)).ToString() : parametro.Parametro
string someString = GetLocalResourceObject(GetNameAsResource(resourceKey)) != null ?
GetLocalResourceObject(GetNameAsResource(resourceKey)).ToString() :
parametro.Parametro.Nome;
并在GetLocalResourceObject(GetNameAsResource(resourceKey)).ToString()中建议:可能的“System.NullReferenceException”
我做错了什么,或者Resharper无法识别以前的空验证
Tks因为GetLocalResourceObject()
是一个方法,所以ReSharper不知道第二次调用的返回值将与第一次调用的返回值相同!这样做:
var resourceObject = GetLocalResourceObject(GetNameAsResource(resourceKey));
string someString =
resourceObject != null
? resourceObject.ToString()
: parametro.Parametro.Nome;
警告将消失,因为现在ReSharper知道在调用方法之前,resourceObject
已检查为空
更好的做法可能是查看-也就是说,在GetLocalResourceObject
当前返回null
的情况下,让它返回表示“无资源”的实际对象。这样,您就根本不需要这种空值检查。GetLocalResourceObjectOrDefault方法在.NET中似乎更为自然。