C#结构体特性与声明.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

10.1结构

•结构与类很相似,均为包含数据成员和

函数成员的数据结构

•结构是值类型,因而可以通过装箱/拆箱

操作,实现与object类型或由该结构实现

的接口类型之间的转换

结构和类的区别

•结构是值类型且被称为具有值语义;而类是类型且被称为具有

语义。对结构类型变量进行赋值意味着将创建所赋的值的一个副本。而

对类变量的赋值,所的是,而不是由该所标识的对象

•对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承

,而且不能类的基,结构可以指定实现的接口列表。但是

,所有结构都直接继承自System.ValueType,而System.ValueType则继承

自System.Object

•结构类型不会是抽象的,并且始终是隐式密封的

•与类不同,结构不允许无形参实例构造函数。相反,每个结构隐式

地具有一个无形参实例构造函数,该构造函数始终返回相同的值,即通

过将所有的值类型字段设置为它们的默认值,并将所有类型字段设

置为null而得到的值。结构可以具有形参的实例构造函数

•在结构中不允许析构函数

结构的和调用

•:

–[特性]

–[结构修饰符][partial]struct结构名[类型形参][:基接口[类型

形参约束]]

–{

–结构体

–}[;]

•调用:

–结构名结构变量名=new结构名([参数表]);

–结构名结构变量名;

【例10.1】结构的调用示例

•一个表示平面坐标系中的点的结构Point,包含两

个数据成员x和y、一个具有两个参数的构造函数。分

别通过调用默认构造函数、调用具有两个参数的构造

函数和对平面坐标点赋值的方法构建并显示3个平面坐

标点

结构成员

•结构不支持继承(不能从一个结构类型派生其它

•常量类型),所以结构成员的可性不能是

•字段protected或protectedinternal

•结构中的函数成员不能是或virtual,

•方法override修饰符只适用于重写从System.ValueType

继承的方法

•属性•结构不能默认构造函数(没有参数的构造函

数)或析构函数

••编译器默认构造函数以将结构成员初始化为

它们的默认值

•索引器–数值型(byte、int、long等)为0;char类型为\0;bool

类型为false;枚举类型为0;类型为null

•运算符重载•结构不允许它的实例字段中含有变量初始值

设定项,但在结构的静态字段中可以含有变

•带参数构造函数量初始值设定项

•嵌套结构

【例10.2】嵌套结构示例

•一个结构Student,包含一个嵌套结构Grade表示学

生分数

您可能关注的文档

文档评论(0)

+ 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档