若将类中的某个成员声明为static 该成员称为静态成员类中的成员要么是静态 要么是非静态的一般说来静态成员是属于类所有的非静态成员则属于类的实例 对象 以下示例代码演示了如何声明静态和非静态成员
程序清单10-5
using System;
class Test
{
int x;
static int y;
void F()
{
x = 1; // 正确,等价于this.x = 1
y = 1; // 正确,等价于Test.y = 1
}
static void G()
{
x = 1; // 错误不能访问 this.x
y = 1; // 正确,等价于Test.y = 1
}
static void Main()
{
Test t = new Test();
t.x = 1; // 正确
t.y = 1; // 错误不能在类的实例中访问静态成员
Test.x = 1; // 错误不能按类访问非静态成员
Test.y = 1; // 正确 } }
类的非静态成员属于类的实例所有每创建一个类的实例都在内存中为非静态 成员开辟了一块区域而类的静态成员属于类所有为这个类的所有实例所共享无 论这个类创建了多少个副本一个静态成员在内存中只占有一块区域。