C#中静态成员与非静态成员

来源:互联网 发布:现金贷源码 编辑:程序博客网 时间:2024/05/08 13:04

静态成员和非静态成员

若将类中的某个成员声明为static该成员称为静态成员,类中的成员要么是静态,要么是非静态的。一般说来静态成员是属于类所有的,非静态成员则属于类的实例。

以下示例代码演示了如何声明静态和非静态成员。

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 = newTest();

t.x = 1; // 正确

t.y = 1; // 错误不能在类的实例中访问静态成员

Test.x = 1; // 错误不能按类访问非静态成员

Test.y = 1; // 正确

}

}

类的非静态成员属于类的实例所有,每创建一个类的实例都在内存中为非静态成员开辟了一块区域,而类的静态成员属于类所有,为这个类的所有实例所共享,无论这个类创建了多少个副本,一个静态成员在内存中只占有一块区域。

 


原创粉丝点击