- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.6 类型和别名 CTS负责定义可在.NET各种语言中使用的类型,大多数语言就选择了实现这些类型的别名。C#类型名和CTS类型名之间的对应关系如表8-4所示。 8.7 类型之间的转换 在程序的设计中,常常会遇到变量的类型转换问题。比如在进行数学四则运算时,int类型的数值和double类型的数值可能混在一起进行运算,这样变量之间的类型转换就应运而生。经常使用的类型转换方法有: 隐式转换 强制类型转换 ToString()方法 Convert类 8.7.1 类型转换 隐式类型转换:从类型A到类型B的转换由编译器自动完成。隐式转换又称自动类型转换,若两种变量的类型是兼容的或者目标类型的取值范围大于源类型时就可以使用隐式转换。能够安全进行隐式类型转换如表8-5所示。 强制类型转换:又叫显式类型转换,从类型A到类型B的转换只能在某些特定情况下进行,转换的规则比较复杂,应该进行某种类型的处理。强制转换的缺点是可能产生的结果不够精确。具体的强制类型转换语法为: (目标类型)变量或表达式; 8.7.1 类型转换 ToString()方法主要用于将变量转化为字符串类型,该方法是C#语言中非常常见的一个方法。 各种类型的变量都可以通过ToString()方法转换为String类型,具体看下面一个把int型变量转化为string类型的小例子: int i=600; string s=i.ToString(); 这样字符串类型变量s的值就是”600” 8.7.2 类型转换 用户可以使用is关键字检测运行时对象的类型是否与某一给定的类型兼容,使用的语法为: 表达式 is 类型 其中,“表达式”为一种引用类型表达式,而“类型”则为一种引用类型。这个is运算符运算之后产生的结果为一个布尔值,因此可以使用条件语句来判断。当表达式不为null且表达式可以被强转换为引用类型时,is表达式就返回true,否则就返回false。 8.7.3 对象的类型转换 用类型转换来恢复一个对象的全部功能。类型转换之前可以先用is做检查。 对象类型转换规则: 向上的类型转换是隐含地实现的(即派生类可以用来替代其基类)。 向下的类型(基类到派生类)转换必须针对子类并由编译器检查。 8.7.4 as关键字 用户可以使用as运算符在兼容类型之间实现转换,其使用语法为: 对象=表达式 as 类型 其中,表达式为任何引用类型,可以把as运算符看作是is运算符的组合,而如果在问题中两个类型是兼容的,就转换类型。as运算符和is运算符之间的主要不同是,如果表达式和类型不兼容,as运算符设置对象为null,代替返回一个值。 8.8 CTS的优点 CTS优点之一:.NET语言都使用一个单一的类型系统,确保了在不同语言中创建的对象和类型可以无缝连接。 CTS优点之二:CTS的一个重要特征就是对象层次结构的单根性。 CTS优点之三:CTS是类型安全的。类型安全保证类型总是名副其实,并且在特定的类型上只能进行适当的操作。 * 第8章 理解值和引用 主讲教师: 杨建军 教学目标 本章主要介绍值类型(结构类型、枚举类型)、引用类型(数组、接口类型、委派类型)、装箱与拆箱、类型和别名、类型之间的转换、CTS优点等知识。通过本章的学习我们将知道.NET框架的核心是一个公共类型系统(Common Type System,CTS)。.NET的类型是如何转换的 教学重点 System.Object类 默认构造函数 结构类型、枚举类型 数组、接口类型、委派类型 装箱与拆箱 类型和别名、类型之间的转换 CTS的优点 8.1 一切都是对象 在.NET和C#世界中,所有的对象都是从一个基类中隐性派生出来的,这个类就是“System.Object”类。 8.2 值类型 值类型包括基本类型、结构类型和枚举类型。所有值类型都隐式地从类object继承。任何类型都不可能从值类型派生,因此隐式地将值类型密封。值类型的变量总是包含此类型的值,值类型的值不可能为null。值类型变量的赋值会创建所赋值的副本。 8.2.1默认构造函数 所有值类型都隐式声明一个称为默认构造函数的公共无参数实例构造函数。默认构造函数返回一个称为值类型的默认值的零初始化实例。值类型的默认值如表8-1所示。 8.2.2 结构类型 结构类型是可以声明常量、字段、方法、属性、索引器、运算符、实例构造函数、静态构造函数和嵌套类型的值类型。 1. 定义结构 结构的定义需使用struct关键字,定义格式如下: struct
文档评论(0)