在这样的项目中,我有两个类:
namespace ConsoleApplication1
{
internal class ClassA
{
internal int dataMember;
}
}和
namespace ConsoleApplication1
{
class ClassB
{
static void Main(string[] args)
{
ClassA c = new ClassA();
Console.Write(c.dataMember); //Cannot access??
}
}
}我对A类及其数据成员使用了内部访问修饰符
虽然类A的对象可以在类b的主目录中创建,但是为什么我不能使用同一个程序集中的内部访问说明符访问它的数据成员呢?
这是在VS 2010中出现的错误:
“ConsoleApplication1.ClassA.dataMember”由于其保护级别而无法访问
发布于 2012-07-01 06:32:06
你应该可以。您的确切代码--只是添加一个using System;指令--为我编译。
检查您是否保存了所有文件等,如果存在编译时错误,请将其包含在您的问题中。也许ClassA中还有其他问题(您还没有向我们展示),它阻止了该类的编译?
还要检查它们是否真的在同一个项目中--而不仅仅是在同一个名称空间中。
发布于 2012-07-01 06:38:24
我是这样得到结果的
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());
}https://stackoverflow.com/questions/11280016
复制相似问题