Me sorprendió un poco cuando el compilador se quejó de esto:¿No se puede leer un const en una instancia de clase?
public class UsefulClass
{
public const String RatingName = @"Ratings\rating";
}
public class OtherClass
{
public void SomeFunc()
{
UsefulClass useful = new UsefulClass();
String rating = useful.RatingName;
}
}
compilador dice, "Miembro estático no se puede acceder con una referencia de instancia; calificar con un nombre del tipo de cambio"
Esto no es No hay problema, String rating = UsefulClass.RatingName;
funciona bien. Solo tengo curiosidad por saber qué hay detrás de esto. Tengo una instancia de una clase pública con una constante pública, ¿por qué no puedo obtener los datos de esta manera?
Es un diseño de lenguaje horrible que infringe severamente http://en.wikipedia.org/wiki/Uniform_access_principle ... no hay ninguna razón para ello, y podrían solucionarlo, sin impacto en el código existente, en un momento. –