当我用静态字符串替换字符串文字时,一个愚蠢但可能并不罕见的错误导致类似下面的代码片段,即使对于一台机器也可能几乎从不打算和微不足道:为什么Visual Studio不提示静态字符串的循环初始化?
public partial class T { static string S = S; }
这不会触发VS Professional 2013,.NET Framework 4.6.0.1055,警告级别4的诊断。为什么不能?
要公平与编译器我假定初始化明确界定,并在它的默认值状态之前明确初始化,即空,给自己指定
S
'值时,最终执行初始化;但它几乎肯定是编码错误。
@eh当前编译器*不*知道更好,所以没有必要的。 –