static限定符

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:实例级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值