![](/img/trans.png)
[英]Non-nullable reference types' default values VS non-nullable value types' default values
[英]What is the default value of Non-Nullable reference types in C# 8?
如果我启用可空引用类型,如果我这样声明它,那么下面字符串的值是多少?
string text;
该值将为null
。
请记住,可空引用类型的新系统只会警告您有关问题,它不会给您一个错误 ,这意味着代码仍然会编译,并带有警告。
如果您声明此类:
public class Test
{
private string text;
}
你的班级会收到这个警告:
CS8618: Non-nullable field 'text' is uninitialized.
但是, 代码仍然编译 。
因此,要(再次)回答您的问题,该字段的默认值将为null
。
注意:如果您使用该语句声明一个局部变量,答案是它没有值,它将被视为绝对未分配,并且您不允许从该变量读取,直到您有适当的代码它肯定是第一个分配。
至于警告与错误,您可以通过摆弄项目选项来选择将它们作为错误,并列出您希望被视为错误的警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.