求教关于字段类型的可访问性不能比字段本身的可访问性低的问题
输入下列代码后出现错误:显示的错误帮助是字段类型的可访问性不能比字段本身的可访问性低,因为所有的公共构造都必须返回公共的可访问对象。
class line
{
class point
{
public int x;
public int y;
}
public point starting = new point();
public point ending = new point();
}
class Program
{
static void Main(string[] args)
{
line myline = new myline();
myline.starting.x = 1;
myline.starting.y = 2;
myline.ending.x = 3;
myline.ending.y = 4;
Console.WriteLine("point1:{0},{1}", myline.starting.x, myline.starting.y);
Console.WriteLine("point2:{0},{1}", myline.ending.x, myline.ending.y);
Console.ReadKey();
}
}
我能理解错误出在哪里,声明的point类可访问性是private,接着又声明了两个可访问性为public 的point类型的对象,所以会出错,可是我看了书上的另外一个例子后,我又有点糊涂了,代码如下:
class point
{
public int x;
public int y;
}
class line
{
public point starting = new point();
public point ending = new point();
}
class Program
{
static void Main(string[] args)
{
line myline =new line ();
myline.starting.x = 1;
myline.starting.y = 2;
myline.ending.x = 3;
myline.ending.y = 4;
Console.WriteLine("point1:{0},{1}", myline.starting.x, myline.starting.y);
Console.WriteLine("point2:{0},{1}", myline.ending.x, myline.ending.y);
Console.ReadKey();
}
}
这个例子可以正常运行,我搞不懂的是,这个例子为什么可以正常运行?不是说字段类型的可访问性不能比字段本身的可访问性低吗?那为什么在这个例子中,point类的可访问性修饰符是private,接着又声明了两个为public的point类对象又不会出错呢?