在字段前头加一个static,在主函数中,只能通过类来调用, 而非静态的成员为什么就可以用对象来调用, 这其中的原理是什么呢

在字段前面加一个static,在主函数中,只能通过类来调用, 而非静态的成员为什么就可以用对象来调用, 这其中的原理是什么呢
没有    什么可写了。
------解决方案--------------------
本帖最后由 caozhy 于 2014-04-06 01:08:02 编辑
静态成员在一个程序(确切地说是程序域)中只有唯一的一个。
一般成员每个实例对象都有一个,互不干涉。所以你必须指明是哪个对象,否则无法区分。比如
class A
{
    public int x;
    public void show() { Console.WriteLine(x); }
}

A a1 = new A();
a1.x = 1;
A a2 = new A();
a2.x = 2;
如果我们写A.show();,假设这是合法的,你告诉我,输出什么?输出·1还是2?

相反,静态成员只有一个,甚至,在你根本没有实例化任何对象的时候它就存在了。如果不通过类名访问,你告诉我,根本就没有实例,怎么调用?
------解决方案--------------------
它不“选”。你赋值了就改变了,不会有多个值。