为什么Visual Studio没有警告静态字符串的循环初始化?

时间:2016-04-26 15:44:44

标签: c# visual-studio static initialization circular-reference

当我用静态字符串替换字符串文字时,一个愚蠢但可能不那么罕见的错误导致类似下面的代码片段,即使对于一台机器,这可能几乎从来没有意图和微不足道:

public partial class T { static string S = S; }

这不会触发VS Professional 2013,.NET Framework 4.6.0.1055,警告级别4的诊断。 1 为什么不呢?

<小时/> 1 为了公平对待编译器,我假设初始化定义良好并指定S&#39;当最终执行初始化时,在显式初始化之前的默认值状态的值,即null,自身;但几乎可以肯定是编码错误。

1 个答案:

答案 0 :(得分:6)

在Visual Studio的最新版本中,它说:

  

警告CS1717对同一变量进行的分配;你的意思是分配其他东西吗?

所以...更新你的IDE:)