-2

内部アクセス修飾子に問題があります。私もこのURLを見ましたが、この質問に直面しているのは、なぜ次のコードがBaseClassのメンバーを認識しないのですか?

namespace Project1
{
    internal class BaseClass
    {
        public static int intM = 0;
    }
}


namespace Project1
{
    class TestAccess
    {
        static void Main()
        {
            BaseClass myBase = new BaseClass();
            Console.WriteLine(myBase.intM);

        }
    }
}
4

2 に答える 2

6

これは内部の問題ではありませんが、明らかに静的な問題です。クラスメンバーは静的であり、インスタンスを介してアクセスしようとしています。

于 2012-08-14T22:01:20.677 に答える
2

コンパイラはおそらく「非静的コンテキストで静的メンバーintMにアクセスできません」と文句を言っています。問題は、intMが静的として定義されていることです。つまり、intMはクラス自体に属し、そのインスタンスの1つではなく、インスタンスに属しているかのようにアクセスできません。代わりに、次のようにこのメンバーにアクセスします。

Console.WriteLine(BaseClass.intM);

これを行うためにBaseClassインスタンスを作成する必要はありません。

于 2012-08-14T22:02:11.407 に答える