ReSharper中可能的空赋值.我看不出那是怎么回事?

kat*_*tit 1 .net c# resharper

我得到以下警告:

对标记为"值不能为空"属性的实体的可能"空"赋值

我的代码:

if (verifier.GetType().GetInterface(typeof(IAsyncVerifier).FullName, true) == null)
                {
                    continue;
                }
Run Code Online (Sandbox Code Playgroud)

typeof(IAsyncVerifier).FullName部分警告.怎么可以为空?你会怎么解决它?或者也许有更好的方法来确定对象是否实现了特定的接口?

Mah*_*eep 6

或者也许有更好的方法来确定对象是否实现了特定的接口?

使用is运算符来检查对象的类型是否来自特定接口或类

if (verifier is IAsyncVerifier)
Run Code Online (Sandbox Code Playgroud)

看看这篇MSDN文章Type.FullName它说该属性不会返回任何内容.

...如果当前实例表示基于类型参数的泛型类型参数,数组类型,指针类型或byref类型,或者不是泛型类型定义但包含未解析类型参数的泛型类型,则无效.

如果您确定当您访问FullName时,在任何情况下都不会为null,您可以使用//resharper disable注释禁用此警告