我收到警告“退出构造函数时,不可为空的事件‘SomeEvent’必须包含非空值。请考虑将事件声明为可空。”
这是我的代码的一个非常简化的版本,它复制了完全相同的问题。我在这里缺少什么?这和 .Net 6 有什么关系吗?
namespace ConsoleApp3
{
public delegate void SomeDelegate(object sender, EventArgs args);
public class NewClass
{
public NewClass(string name)
{
this.name = name;
}
public string name { get; set; }
public event SomeDelegate SomeEvent;
}
}
我知道我参加聚会迟到了,但谷歌把我送到这里,唯一的回应并不令人满意。 我在 StackOverflow 上找到了另一个答案,感觉好多了,你可以在那里得到很好的解释。
tl;dr 只是让事件可以为空,因为这就是它的实际情况:
public event SomeDelegate? SomeEvent;
将属性初始化为默认值。
public string name { get; set; } = default!;