Si hago esto, me siento un System.StackOverflowException
:¿Por qué el compilador de C# no detiene las propiedades de sí mismos?
private string abc = "";
public string Abc
{
get
{
return Abc; // Note the mistaken capitalization
}
}
entiendo por qué - la propiedad hace referencia a sí mismo, dando lugar a un bucle infinito. (Consulte las preguntas anteriores here y here).
Lo que me pregunto (y lo que no vi respondió en esas preguntas anteriores) es ¿por qué el compilador de C# no detecta este error? Comprueba otros tipos de referencias circulares (clases heredadas de ellos mismos, etc.), ¿verdad? ¿Es solo que este error no fue lo suficientemente común como para merecer la pena? ¿O hay alguna situación en la que no estoy pensando, cuando quieres que una propiedad se refiera a sí misma de esta manera?
Al "hacer referencia a sí mismo", supongo que realmente quiero decir "recursivamente llamándome a sí mismo", pero entiendes la idea. –