私は次のコードを書きました:
public class A
{
protected string Howdy = "Howdy!";
}
public class B : A
{
public void CallHowdy()
{
A a = new A();
Console.WriteLine(a.Howdy);
}
}
これでVS2010
、次のコンパイルエラーが発生します。
タイプ「A」の修飾子を介して保護されたメンバー「Aa」にアクセスできません。修飾子はタイプ「B」(またはそれから派生)である必要があります。
これは私には非常に非論理的です-protected
クラスのメソッドから派生したクラスインスタンスのフィールドにアクセスできないのはなぜですか?
では、なぜこれが起こるのでしょうか?
厳密な答えが見つかりました-http ://blogs.msdn.com/b/ericlippert/archive/2005/11/09/491031.aspx