繁体   English   中英

为什么我收到警告说必须初始化一个不可为空的字段(当我确定我正在初始化它时)?

[英]Why am I getting warning that a non-nullable field must be initialised (When I'm sure I'm initialising it)?

我有:

public abstract class Craft
{
    public Craft()
    {
        CurrentQuadrant = new Point(0, 0);
    }

    private Point _currentQuadrant;
    public Point CurrentQuadrant
    {
        get => _currentQuadrant;
        set
        {
            _currentQuadrant = value;
        }
    }
}

(点是一个简单的 xy 对)。

为什么会Non-nullable field '_currentQuadrant' must contain a non-null value when exiting the constructor 分配不是确保它是非空的吗?

名声太小,无法评论,所以我会在这里发布。

如果您使用的是 .NET 5+,则可以使用[MemberNotNull]属性(更多信息在这里)。

只需将[MemberNotNull(nameof(_currentQuadrant)]放在您的构造函数上,警告就会消失。

或者您可以将值分配给_currentQuadrant而不是CurrentQuadrant

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM