先看下面的C#代码,能编译通过吗?为什么?
using
System;
public class Component
{
private int context;
public Component(Component component)
{
component.context = 1;
}
}
public class Component
{
private int context;
public Component(Component component)
{
component.context = 1;
}
}
答案是可以的。我们先看private修饰符的定义:私有成员只有在声明它的类或结构的主体中才可以访问。上面的代码确实是在Component的类的主体中,所以可以。但若下面的情况肯定不行。
using
System;
public class Component
{
private int context;
public Component(Component component)
{
component.context = 1;
}
static void Main()
{
Component t;
// 下面一行编译不过
// t.context;
}
}
public class Component
{
private int context;
public Component(Component component)
{
component.context = 1;
}
static void Main()
{
Component t;
// 下面一行编译不过
// t.context;
}
}