【发布时间】:2020-01-13 10:38:41
【问题描述】:
.Net Core 允许您使用[DisallowNull] 来装饰属性,以告诉编译器不允许代码将属性设置为 null,即使属性本身已声明允许这样做。例如:
public sealed class Test
{
[DisallowNull] public string? Text { get; set; }
}
当您尝试将属性显式设置为 null 时,这可以正常工作:
var test = new Test();
test.Text = null; // Warning: "Cannot convert null literal to non-nullable reference type".
但是,如果你使用对象初始化器,它就不起作用:
var test = new Test
{
Text = null // No warning. I want one.
};
有什么办法可以让上面的代码引起编译器警告/错误?
【问题讨论】:
-
啊,这是一个错误。那就等修复吧!
标签: c# .net-core nullable-reference-types