一周学会C#(结构二)

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

一周学会C#(结构二)

C#才鸟(QQ:249178521)

6.实例字段

· 实例字段...

w 缺省初始化是调用编译器声明的缺省构造函数

w 在用户自定义的构造函数中必须显式初始化

w 不能在它们声明时初始化

struct Pair

{

public Pair(int x, int y)

{

this.x = x;

this.y = y; //正确,所有的实例字段都被显式初始化

}

...

private int x, y; //声明时没有被初始化

}

结构的自定义构造函数必须显式初始化结构中的所有实例字段。(在类的构造函数中不是这样的)

public BadPair(int x, int y)

{

this.x = x;//没有定义this.y

}

private int x, y;

结构的实例字段只能在构造函数中进行初始化,而不能使用赋值的方法。(在类的构造函数中不是这样的)

private int x;

private int y = 0;//在结构中是非法的

7.静态字段

· 静态字段...

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

w 可以在声明时初始化

w 只能通过类名访问

struct 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

8.只读字段

· 只读字段...

w 不能被赋值

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

struct 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;

}

9.术语

· 两种值类型

w 枚举类型

w 结构类型

· 两种结构类型

w 简单结构类型

§ 有一个关键字别名(例如 System.Int32 == int)

§ 有数值表达式 (例如, 42)

w 用户自定义结构类型

§ 没有一个关键字别名

§ 没有数值表达式

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