using System;
using System.IO;
class point
{
public int x;
public int y;
}
class line
{
static public point orign = new point();
public point ending = new point();
}
class lineApp
{
public static void Main()
{
line line1 = new line();
line line2 = new line();
line.orign.x = 1;
line.orign.y = 2;
line1.ending.x = 3;
line1.ending.y = 4;
line2.ending.x = 7;
line2.ending.y = 8;
Console.WriteLine("Line 1 start:({0},{1})", line.orign.x, line.orign.y);
Console.WriteLine("line 1 end: ({0},{1})", line1.ending.x, line1.ending.y);
Console.WriteLine("Line 2 start: ({0},{1})", line.orign.x, line.orign.y);
Console.WriteLine("line 2 end :({0},{1})\n", line2.ending.x, line2.ending.y);
line.orign.x = 800;
line.orign.y = 530
Console.WriteLine("Line 1 start:({0},{1})", line.orign.x, line.orign.y);
Console.WriteLine("line 1 end: ({0},{1})", line1.ending.x, line1.ending.y);
Console.WriteLine("Line 2 start: ({0},{1})", line.orign.x, line.orign.y);
Console.WriteLine("line 2 end :({0},{1})\n", line2.ending.x, line2.ending.y);
}
}
删去代码 static public point orign = new point(); 中的 static 后会报错的原因:
line 类中的 orign 成员被声明为 static ,这意味着它是类级别的成员,不是实例级别的成员。因此,所有的line类实例共享同一个orign成员。
当删除static 关键字时会报错,这是因为试图在一个实例方法(Main方法)中访问一个非静态(实例成员)时,而这个成员却在类级别上被引用了。
有static:类级别
没有static:实例级别