Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 也许不正确;可能';System.NullReferenceException'&引用;再竖琴中的小费_C#_Resources_Resharper - Fatal编程技术网

C# 也许不正确;可能';System.NullReferenceException'&引用;再竖琴中的小费

C# 也许不正确;可能';System.NullReferenceException'&引用;再竖琴中的小费,c#,resources,resharper,C#,Resources,Resharper,我想迭代一个列表并获取标签文本值。很明显,一切正常,除了Resharper tip。守则: string someString = GetLocalResourceObject(GetNameAsResource(resourceKey)) != null ? GetLocalResourceObject(GetNameAsResource(resourceKey)).ToString() : parametro.Parametro

我想迭代一个列表并获取标签文本值。很明显,一切正常,除了Resharper tip。守则:

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中似乎更为自然。