C# 内部访问修饰符

C# 内部访问修饰符,c#,C#,我在这样一个项目中有两门课: namespace ConsoleApplication1 { internal class ClassA { internal int dataMember; } } 及 我已经为类A及其数据成员使用了内部访问修饰符 虽然类A的对象可以在类b的main中创建,但是为什么我不能使用同一程序集中的内部访问说明符访问其数据成员呢 以下是它在VS 2010中给出的错误: “ConsoleApplication1.ClassA.d

我在这样一个项目中有两门课:

namespace ConsoleApplication1
{
    internal class ClassA
    {
         internal int dataMember;
    }
}

我已经为类A及其数据成员使用了内部访问修饰符

虽然类A的对象可以在类b的main中创建,但是为什么我不能使用同一程序集中的内部访问说明符访问其数据成员呢

以下是它在VS 2010中给出的错误:

“ConsoleApplication1.ClassA.dataMember”由于其保护级别而不可访问


你应该能够。您的确切代码-只需使用系统添加
指令-为我编译

检查是否确实保存了所有文件等,如果存在编译时错误,请将其包含在问题中。也许在
ClassA
(您还没有向我们展示)中还有其他错误阻止了该类的编译


还要检查它们是否真的在同一个项目中,而不仅仅是在同一个名称空间中。

我这样得到结果:

    internal class A
    {
        internal int X = 5;
    }
    static class B
    {
        public static void Show()
        {
            A a = new A();
            MessageBox.Show(a.X.ToString());
        }
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        B.Show();
    }
    internal class A
    {
        internal int X = 5;
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        A a = new A();
        MessageBox.Show(a.X.ToString());
    }
也是这样:

    internal class A
    {
        internal int X = 5;
    }
    static class B
    {
        public static void Show()
        {
            A a = new A();
            MessageBox.Show(a.X.ToString());
        }
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        B.Show();
    }
    internal class A
    {
        internal int X = 5;
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        A a = new A();
        MessageBox.Show(a.X.ToString());
    }

dataMember
可访问()。也许你缺少一个
使用系统指令,因此
控制台
不可见?您能给我们一个屏幕截图,显示您的项目布局、代码和错误消息吗?这可能会给我们一些提示。@Akash:我怀疑您发布的代码不是您当时正在构建的代码,或者不是您正在构建的所有代码。你发布的内容真的很有用。请复制并粘贴问题中的所有代码。我非常怀疑这是一个编译器问题。