me escribió el siguiente código:C# para acceder miembro protegido en la clase derivada
public class A
{
protected string Howdy = "Howdy!";
}
public class B : A
{
public void CallHowdy()
{
A a = new A();
Console.WriteLine(a.Howdy);
}
}
Ahora, en VS2010
que da como resultado el siguiente error de compilación:
Cannot access protected member 'A.a' via a qualifier of type 'A'; the qualifier must be of type 'B' (or derived from it).
Esto parece bastante ilógica para mí - ¿Por qué no puedo acceder al campo protected
de la instancia de clase desde un método de la clase, que se deriva de él?
Entonces, ¿por qué sucede esto?
encontrado una respuesta estricta-http://blogs.msdn.com/b/ericlippert/archive/2005/11/09/491031.aspx
+1 para una pregunta muy claramente escrita. :) – Almo
Lo que puede hacer es crear un método estático protegido que proporcione acceso solo a una clase derivada, como por ejemplo: public class A { cadena protegida Howdy = "Howdy!"; } public class B: Un { CallHowdy public void() { A a = new A(); Console.WriteLine (a.Howdy); } } –