【发布时间】:2020-04-19 05:05:53
【问题描述】:
在我看来,确实不能保证不可为空的变量永远不会为空。想象一下,我有一个类有一个不可为空的属性:
public class Foo
{
public Foo(string test)
{
Test = test;
}
public string Test {get;set;}
}
现在看起来它现在不能为空。但是如果我们用另一个不使用可为空上下文的库来引用这个类,没有什么能阻止它在那里发送 null。
这是正确的还是有一些运行时检查可以确保这一点?
【问题讨论】:
-
是
public void Foo(string test){...}还是public Foo(string test){...}? -
谢谢,我已经修好了。当人类过度依赖 R# 来生成构造函数时,就会发生这种情况:)
-
C# 9 将(可能)添加simplified null validation。
-
简而言之,“可空引用类型”功能完全被破坏了。
标签: c# c#-8.0 nullable-reference-types