当我用静态字符串替换字符串文字时,一个愚蠢但可能不那么罕见的错误导致类似下面的代码片段,即使对于一台机器,这可能几乎从来没有意图和微不足道:
public partial class T { static string S = S; }
这不会触发VS Professional 2013,.NET Framework 4.6.0.1055,警告级别4的诊断。 1 为什么不呢?
<小时/> 1 为了公平对待编译器,我假设初始化定义良好并指定
S
&#39;当最终执行初始化时,在显式初始化之前的默认值状态的值,即null,自身;但几乎可以肯定是编码错误。
答案 0 :(得分:6)
在Visual Studio的最新版本中,它说:
警告CS1717对同一变量进行的分配;你的意思是分配其他东西吗?
所以...更新你的IDE:)