一周学会C#(类二)

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

一周学会C#(类二)

C#才鸟(QQ:249178521)

5.实例字段

· 实例字段...

w 在所有的构造函数中被初始化为缺省值(0/false/null)

w 可以在一构造函数中显式初始化

w 可以在它们声明时初始化

sealed class Pair

{

public Pair(int x, int y)

{

this.x = x;

y = y;

}

...

private int x;

private int y = 42;

}

回忆一下:在结构的自定义构造函数必须显式初始化类中的所有实例字段。结构的实例字段只能在构造函数中进行初始化,而不能使用赋值的方法。

而类则比结构方便的多。

类中的所有字段都缺省初始化为缺省值。

在类的构造函数中,你可以在字段声明时进行初始化。

在上面的例子中,构造函数的参数y用字段y来赋值。编译器通过的原因是字段y已经被赋初值。其实,如果没有对字段y进行初始化,编译器仍然会通过,困为字段y已有缺省值0,所以在构造函数中没有显式初始化字段y是不会发生错误的。

6.静态字段

· 静态字段...

w 被缺省初始化为0/false/null

w 可以在声明时初始化

w 只能通过类名访问

class Pair

{

public Pair(int x, int y)

{

...

}

private static Pair origin = new Pair(0,0);

...

private int x, y;

Pair p = new Pair();

...

Method(p.origin); //错误,只能通过类名访问

Method(Pair.origin); //正确

由static修饰符声明的字段称为静态变量。当类的声明装载时,静态变量就开始存在,直到程序结束时才消失。

静态变量的初值:

l 整型变量为0(包括枚举)

l 实型变量为0.0

l bool型变量为false

l 引用型变量为null

7.只读字段

· 只读字段...

w 不能被赋值

w 不能被用作ref/out 型参数

class Pair

{

public static readonly Pair Origin = new Pair(0,0);

public Pair(int x, int y)

{

this.x = x;

this.y = y;

}

public void Reset()

{

x = 0; //错误

Origin.x = 0; //错误

}

private readonly int x, y;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航