如果我启用了可为空的引用类型,那么如果我这样声明的话,以下字符串的值是什么?
string text;
答案 0 :(得分:6)
要回答您的问题,值将为null
。
请记住,可为空的引用类型的新系统只会对问题发出警告,不会给您错误,这意味着代码将仍然编译,并带有警告。
如果您声明此类:
public class Test
{
private string text;
}
您会在班级收到以下警告:
CS8618: Non-nullable field 'text' is uninitialized.
但是,代码仍然可以编译。
因此(再次)回答您的问题,该字段的默认值为null
。
注意::如果您使用该语句声明局部变量,则答案是该变量将没有值,它将被视为绝对未赋值的,并且不允许您读取该变量,直到您有明确的位置使其明确分配的代码为止。
对于警告与错误,您可以通过摆弄项目选项来选择将其视为错误,并列出要视为错误的警告。