c# – 为什么Resharper会在这种情况下显示System.NullReferenceException警告?

c# – 为什么Resharper会在这种情况下显示System.NullReferenceException警告?,第1张

概述为什么Resharper在这种情况下会显示System.NullReferenceException警告? MethodBase.GetCurrentMethod().DeclaringType.Name 我在我的代码中的许多地方都有上述行.为什么Resharper会给我一个警告? 我在类似的行上检查了SO,但没有完全匹配. 您所看到的是 ReSharper’s Annotation [CanBe 为什么Resharper在这种情况下会显示System.NullReferenceException警告?

MethodBase.GetCurrentMethod().DeclaringType.name

我在我的代码中的许多地方都有上述行.为什么Resharper会给我一个警告?

我在类似的行上检查了SO,但没有完全匹配.

解决方法 您所看到的是 ReSharper’s Annotation [CanBeNull]的结果,它应用于属性MemberInfo.DeclaringType:

(这是ReSharper的QuickDoc功能,按Ctrl Q或Ctrl Shift F1,具体取决于您使用的键绑定).

我最近在recorded a webinar使用JetBrains,深入讨论了注释,所以欢迎观看它以获取有关其工作原理的更多信息,但基本上,ReSharper“知道”DeclaringType属性在运行时可能为null.这是因为任何一个MemberInfo实现都可能从此属性返回null.例如,ConstructorInfo does this:

public overrIDe Type DeclaringType {     get     {         return m_reflectedTypeCache.IsGlobal ? null : m_declaringType;     }}

在任何情况下,由于可能,DeclaringType的一个实现可以为null,ReSharper会向您发出警告,因此您需要进行空检查.

总结

以上是内存溢出为你收集整理的c# – 为什么Resharper会在这种情况下显示System.NullReferenceException警告?全部内容,希望文章能够帮你解决c# – 为什么Resharper会在这种情况下显示System.NullReferenceException警告?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1223832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存