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

Pet*_*ica 4 c# static initialization circular-reference visual-studio

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

public partial class T { static string S = S; }
Run Code Online (Sandbox Code Playgroud)

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


1为了公平对待编译器,我假设初始化是很好定义的,并且S在最终执行初始化时,在显式初始化之前将值设置为其默认值状态,即null; 但几乎可以肯定是编码错误.

Mar*_*ell 6

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

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

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