关于C#中的内部访问修饰符

时间:2012-08-14 21:58:53

标签: c# oop

我遇到了内部访问修饰符的问题。我还看了this 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);

        }
    }
}

2 个答案:

答案 0 :(得分:6)

这不是内部的问题,但显然是静态的。您的类成员是静态的,并且您正尝试通过实例访问它。

答案 1 :(得分:2)

编译器可能抱怨“无法在非静态上下文中访问静态成员intM”。问题是intM被定义为静态,基本上意味着它属于类本身而不属于它的任何一个实例,并且它不能被访问,就像它确实属于一个实例一样。您可以按如下方式访问此成员:

Console.WriteLine(BaseClass.intM);

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