“退出构造函数时,不可为空的事件必须包含非空值”

问题描述 投票:0回答:2

我收到警告“退出构造函数时,不可为空的事件‘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;
    }
}
c# .net events delegates non-nullable
2个回答
14
投票

我知道我参加聚会迟到了,但谷歌把我送到这里,唯一的回应并不令人满意。 我在 StackOverflow 上找到了另一个答案,感觉好多了,你可以在那里得到很好的解释。

tl;dr 只是让事件可以为空,因为这就是它的实际情况:

public event SomeDelegate? SomeEvent;  

0
投票

将属性初始化为默认值。

public string name { get; set; } = default!;
© www.soinside.com 2019 - 2024. All rights reserved.