如果我这么做,就会得到一个System.StackOverflowException
异常:
private string abc = "";
public string Abc
{
get
{
return Abc; // Note the mistaken capitalization
}
}
我理解这个问题的原因是该属性引用了它自己,导致无限循环(请参见之前的问题这里和这里)。
但我想知道的是(之前的问题中没有回答),为什么C#编译器没有捕获到这个错误呢?编译器会检查其他一些循环引用的情况(如类从自身继承等),对吗?难道只是这个错误不常见,不值得检查吗?或者有没有我没有考虑到的情况,需要让属性实际上以这种方式引用自己?