struct (5.31)

和C++中接触到的struct结构不太相同的一点是,C#中的struct内可以内嵌函数作为成员,或者从某种意义上说,struct类型与类类型有着非常多的相似之处。所有的不同点归纳如下:

1. struct为值类型,定义在栈上,类为引用类型,定义在堆上。

2. 使用struct时,不能自定义默认构造函数,因为系统会自动生成并初始化变量,如果自定义构造函数(非默认),系统要求程序中对所有成员变量进行手动初始化,否则将报错;而类类型允许用户定义默认构造函数,如果不自定义,系统也将自动生成并初始化变量,反过来,如果用户定义有任何构造函数(非默认构造函数),系统将不会自动生成默认构造函数,这就意味着,如果要给类定义构造函数,一定不能忘记添加默认构造函数的定义。

3. 对struct变量的调用属于值调用,对对象的调用属于引用调用,这点必须强调并且明确。

posted @ 2009-05-31 23:28  超越菜鸟  阅读(136)  评论(0编辑  收藏  举报