返回

c#-如何告诉编译器必须初始化属性

发布时间:2022-03-01 20:40:49 527
# flask

我有这样一门课:

public class Foo
{
    public string Bar { get; init; }
    public IImmutableSet Baz { get; init; }
}

当我这样写的时候,我会得到一个编译器警告

退出构造函数时,不可为null的属性“Bar”必须包含非null值。考虑将属性声明为可空的。csharp(CS8618)

有很多内容可以解决这个问题,但在我看来,这只是关于如何通过设置默认值或使用“关闭编译器警告”来消除消息;“虚假违约”;喜欢null!.

但在我的例子中,默认值没有意义。相反,我想告诉编译器,必须显式设置这些属性,以便在使用对象之前,如果没有设置任何属性,编译器会进行投诉。就像未分配的局部变量的情况一样。

我知道我可以用参数定义一个构造函数,所以使用该构造函数是创建新实例的唯一方法。但是由于我有很多类似于上面的类,我需要编写很多额外的代码(即构造函数)。对于我的代码的读者来说,如果有一种;“必须初始化”;旗帜

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像