-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 被定义为静态的,基本上意味着它属于类本身而不是它的任何一个实例,并且它不能像它确实属于一个实例一样被访问。您将改为访问此成员,如下所示:

Console.WriteLine(BaseClass.intM);

您甚至不需要创建 BaseClass 实例来执行此操作。

于 2012-08-14T22:02:11.407 回答