欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    零点起飞学C#之结构.pptx

    • 资源ID:66866031       资源大小:179.26KB        全文页数:16页
    • 资源格式: PPTX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    零点起飞学C#之结构.pptx

    第9章 结 构在实际生活中,我们经常把一组相关的信息放在一起,比如通讯录的记录。这样便于我们记忆和处理。同样,编程也采纳了这种处理模式。在编程中,把一系列相关的变量组织成为一个单一实体的过程称就为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构的成员。本章将为大家详细讲解C#语言中的结构。9.1 结 构 概 述结构和类非常相似。类类型是一种引用类型,它的变量仅仅包含访问某个数据的一个引用(或地址)。但结构是一种值类型,并且不需要堆分配。如果声明一个很大的数组,为了引用每个对象,就需要分配更多的内存。这种情况下,使用结构可以节约资源。本节学习结构的声明和它的修饰符。1结构声明结构和类一样,在使用之前需要声明。声明结构需要使用struct关键字,语法如下:struct-modifiers struct identifier struct-interfaces struct-body;struct-modifiers表示结构修饰符(可选),identifier表示结构的名称,struct-interfaces表示结构的基接口等(可选),struct-body表示结构体,;(分号)是可选的。【示例9-1】下面声明名称为Str的结构。public struct Str /声明一个名为Str的结构 /结构体的代码已经省略2结构修饰符和类一样,结构也需要修饰符去限定它。不同的结构,也有不同的访问权限。C#中有多种修饰符来表达结构的不同性质。结构修饰符放在struct关键字的前面,它包括new、public、protected、internal和private共5个关键字。其中,public、protected、internal和private修饰符控制结构的可访问性。它们的意义具体说明如下所示。public修饰符:表示该结构是公开的,访问不受限制。protected修饰符:表示该结构只能是本身或其派生的结构访问。internal修饰符:表示该结构只能是在当前应用程序中访问。private修饰符:表示该结构只能是本身访问。注意:new修饰符可以指定接口隐藏同名的继承成员。9.2 结 构 成 员结构和类一样,它也包含多种成员,如常量、字段、方法等。具体说明如下所示:常量:用来表示常数值。字段:结构的变量。方法:是包含一系列语句的代码块,通过这些代码块能够实现预先定义的计算或操作。属性:用于访问对象或结构的特性的成员。事件:一种使对象或结构能够提供通知的成员。客户端可以通过提供事件处理程序(event handler)为相应的事件添加可执行代码。索引器:是一种含有参数的属性,又称为含参属性。它提供索引的方式来访问对象,即与数组的访问方式相同。运算符:定义表达式运算符,通过它可以对该结构的实例进行运算。实例构造函数:不使用static修饰符,用于实现初始化该结构的实例所需的操作。静态构造函数:使用static修饰符,用于实现初始化该结构自身所需的操作。类型:该结构的局部类型。上述成员除了类型之外,可以分类两大类:数据成员和函数成员。其中,数据成员包括常量和字段;函数成员包括方法、属性、事件、索引器、运算符、实例构造函数和静态构造函数。注意:由于结构的成员和类的成员非常相似,因此在此不做详细介绍,读者可以参考类成员(第8.2节)。9.3 结构和类的区别结构和类虽然比较相似,但是还存在以下8个方面的区别,如下表所示。区区别项结构构类类型型值类型引用类型在内存中的分配在内存中的分配分配在堆栈上分配在堆上默默认值字段本身类型的默认值字段的默认值为null无参数的构造函数无参数的构造函数不能声明可以声明析构函数析构函数不能声明可以声明实例字段的初始化例字段的初始化不能可以继承承不存在继承,但可以实现接口存在单继承实例化例化时new运算符的使用运算符的使用可以不使用,对象具有默认初始值必须使用,且要给每个字段赋初值9.3.1 继承在前面第8.1.3小节我们简单学习了类继承,但是结构不支持继承。因此,在声明结构成员时,不能使用protected或protected internal修饰符。结构类型永远不会是抽象的,并且始终是隐式密封的。因此,结构不能作为其他结构或类的基结构,而且在声明结构时,不能使用abstract或sealed修饰符。【示例9-2】下面声明名称为Str的结构,它包含两个字段:name和age。其中,在声明age字段时使用了protected修饰符。public struct Str string name;protected int age;/错误,不能使用protected修饰符分析:在age的声明处将产生一个编译错误,错误信息为“结构中已声明新的保护成员”。因此,结构成员是不能用protected修饰的。结构类型隐式地从System.ValueType类继承(System.ValueType类本身继承于object类)。在声明一个结构时,可以指定该结构实现多个接口,但是不能指定基类。【示例9-3】下面声明一个类和一个结构,它们的名称分别为Program和Str。其中,Str结构继承自Program类。public class Program /声明Program类public struct Str:Program /错误,Str结构不能声明基类Program string name;/声明name字段 int age;/声明age字段分析:在结构的声明处将产生一个编译错误,错误信息为“接口列表中的类型”Program”不是接口”。因为结构可以实现接口,但是不支持继承,它的函数成员也不能被继承。因此,在声明结构的函数成员时,也不能使用abstract或virtual修饰符。注意:在结构中,可以使用override修饰符重写从System.ValueType类继承而来的方法。9.3.2 this保留字保留字this只能在实例构造函数、实例方法或实例访问器的块中使用,且表示当前实例。在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用。在类的方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用。但是,在结构的构造函数中出现的this作为一个变量类型,它表示对正在构造的结构的引用。在结构的方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用。注意:在结构中时,由于this相当于一个变量,因此,可以对this赋值,甚至通过this可能修改其所属结构的值。9.3.3 构造函数在类中,可以声明无参数的实例构造函数。但是在结构中,不能声明无参数的实例构造函数。因为每一个结构都隐式地具有一个无参数实例构造函数,该构造函数无法更改。默认的构造函数将初始化该结构所有字段的值。如果字段的类型为值类型,则将该字段的值设置为其类型的默认值。如果字段的类型为引用类型,则将该字段的值设置为null。此外,结构还可以声明带有参数的实例构造函数。【示例9-4】下面程序中声明名称为Str的结构,它包含两个字段:name和age。Str结构还声明一个带有两个参数(name和age)的实例构造函数,并初始化name和age字段的值。还声明了类Program,Program类定义了一个无参数的构造函数。9.4 小 结本章主要介绍了C#语言中的结构,如结构概述、结构成员、结构和类的区别。其中,读者要着重掌握创建结构的方法,认真理解结构和类的区别,为后续编写C#程序代码奠定基础。第10章将要介绍C#语言中的数组。

    注意事项

    本文(零点起飞学C#之结构.pptx)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开