浅谈C_中的结构.docx_第1页
浅谈C_中的结构.docx_第2页
浅谈C_中的结构.docx_第3页
浅谈C_中的结构.docx_第4页
浅谈C_中的结构.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅谈C#中的结构 结构与类很相似,都表示可以包含数据成员和函数成员的数据结构。但是,与类不同,结构是一种值类型,并且不需要堆分配。结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用。 结构对于具有值语义的小的数据结构特别有用。复数、坐标系中的点或字典中的“键-值”对都是结构的典型示例。这些数据结构的关键之处在于:它们只有少量数据成员,它们不要求使用继承或引用标识,而且它们适合使用值语义(赋值时直接复制值而不是复制它的引用)方便地实现。结构声明 结构声明是一种用于声明新结构的类型声明: 使用struct关键字 访问修辞符 struct 结构名 数据成员 成员函数 类和结构的区别 结构在以下几个重要方面和类是不同的: 结构是值类型,类是引用类型。 在结构中,实例字段声明中不能含有变量初始值设定项。 在结构中不能声明无参数的实例构造函数。 在结构中不能声明析构函数。 在结构中不存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基类。结构可实现接口,而且实现方式与类实现接口的方式完全相同。示例 1 本示例声明一个结构,它有5个成员:2个属性、1个方法和2个私有字段。本示例创建该结构的一个实例,并将其投入使用:using System;struct Point private int x,y; public int X get return x; set x=value; public int Y get return y; set y=value; public void DisplayPoint() Console.WriteLine(The Pointx value is: 0, x); Console.WriteLine(The Pointy value is: 0,y); class TestClass public static void Main() Point p = new Point(); p.X = 5; p.Y=5; p.DisplayPoint(); 以上new 运算符创建结构的实例,但结构是值类型,并没有在堆上为实例分内存空间.结构变量本身就存储了该实例的值.而不是实例的引用。new运算符只不过是调用了结构的构造函数。示例 2 本示例展示当向方法传递结构时,将传递该结构的副本,而传递类实例时,将传递一个引用。using System;struct STPointX private int x; public int X get return x; set x=value; class CLPointX private int x; public int X get return x; set x=value; class TestClass public static void structP(STPointX s) s.X = 5; public static void classP(CLPointX c) c.X = 5; public static void Main() STPointX a = new STPointX() ; CLPointX b = new CLPointX(); a.X = 1; b.X = 1; structP(a); /传递实例的副本 classP(b); /传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论