提问人:Sander van 't Einde 提问时间:8/28/2023 更新时间:8/28/2023 访问量:58
使用方法而不是构造函数初始化非 null 属性
Initialize non-null properties using a method instead of constructor
问:
在我们的架构中,我们有一个方法,它总是在调用任何其他方法之前被调用。此方法用于初始化构造对象时不可用的引用。
下面是此类的示例:
#nullable enable
public class MyClass
{
private MyReference _reference; // this shows a warning
public MyClass() { }
public void Activate()
{
_reference = new MyReference();
}
}
现在我在私有字段上收到警告,因为它没有在构造函数中初始化(这是有道理的)。
我已经尝试过 2 种解决方案,它们并不完全适合我:
- 使该字段可为空。但是,这意味着在我尝试访问该字段的任何地方,我都必须进行空检查
- 如代码示例所示,将 中初始化的所有字段标记为 。这将删除错误,但是我们不会在任何地方强制执行实际初始化。
Activate
= null!
我的问题是:是否有任何属性或方法可以使此示例工作,当我的类字段的初始化发生在构造函数之外时,我得到了强制初始化(通过编译器警告)
编辑:修复问题的格式
答: 暂无答案
评论
Activate
MemberNotNullAttribute
Activate
Activate