在Resharper和Rider中,有Jetbrains.Annotations属性,该属性可以应用于隐式使用的类型和字段。
例如,如果您定义某种数据合同/ DTO,则可以使用修饰它,[UsedImplicitly]
Resharper将知道不会将该字段标记为未使用。
但是,在C#8中,如果您使用Nullable Ref Types功能。如果您未将这些字段显式设置为非null值,则任何此类不可为null的字段都将标记为“从不初始化”。
是否可以通过某种方式告诉C#8编译器“嘿,忽略这个,只相信我一个”?
例如,假设我们有一个这样的请求消息,也许它被传递给ASP.NET端点或类似对象。
class LoginRequest
{
public string UserName {get; set;}
}
编译器会抱怨UserName从未初始化,这不是因为它是由Web客户端初始化的。例如SPA应用程序。
抑制此类警告的正确方法是什么?
您可以使用null
标记为非空的值对其进行初始化:
public string UserName { get; set; } = null!;
乍一看这很奇怪,但它是一种声明某种技术在null
短期内可能存在但实际上并未实际使用的非常简单的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句