1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4类型转换

源程序解读 (1)第一个打印结果,说明将decimal数字类型转换为double数据类型时,数据值发生的变化,小数部分进行了四舍五入。 (2)第二个打印结果,说明将float数字类型转换为int数据类型时,数据值发生的变化,小数部分没有进行四舍五入。 (3)第三、第四和第五个打印结果,说明在进行数字转换后由于数值产生变化,导致计算结果的差别。 (4)float数字类型和decimal数字类型之间不支持操作符“*”,必须将float变量转换为decimal类型,才能相乘得到一个decimal类型的结果。 例8:字符类型与数字类型的转换 字符类型和数字类型可以实现相互转换,其中字符转换为数字类型,可以使用隐式转换进行,数字类型转换为字符类型,需要使用显示转换。   本示例说明了如何在字符类型和数字类型之间进行转换,技术要点如下。 字符类型可以隐式转换为ushort、int、uint、long、ulong、float、double和decimal类型,不能从其他数据类型隐式转换为字符类型。 数字类型变量在转换为字符类型时,首先转换为整型类型,如果数字类型变量带有小数部分,就截掉小数部分,在转换为字符类型。 using System; using System.Collections.Generic; using System.Text; namespace CharToNumber { class Program { static void Main(string[] args) { char testchar1 = a; int testint1 = testchar1;//隐式转换,将chat类型赋值给int类型 Console.WriteLine(字符{0}的整数值是:{1}, testchar1, testint1); decimal testdecimal2 = 114.9923m;//decimal类型变量赋值加后缀“m” char testchar2 = (char)testdecimal2;//显式转换,将decimal类型赋值给chat类型 Console.WriteLine(小数{0}表示的字符是:{1}, testdecimal2, testchar2); Console.ReadLine(); } } } 源程序解读 (1)本示例中使用隐式转换将字符类型变量testchar1转换为整数类型变量testint1.使用显示转换将数字类型变量testdecimal2转换为字符类型变量testchar2. (2)将decimal类型的变量testdecimal2转换为字符时,实际上是先将testdecimal2不作四舍五入,直接获取整数部分,转换为整数值114,再将整数值114转换为字符r。 // Animal是Giraffe的基类 Giraffe g = new Giraffe();// 创立一新的派生类型 Animal a = g; // 到基类的隐式转换是安全的 // 显式转换要求强制转换到派生类型。如果右边对象不是Giraffe运行时抛异常 Giraffe g2 = (Giraffe) a; 引用类型之间的强制转换操作不会更改下层对象(在堆上)的运行时类型;仅改变该下层对象的引用(在堆栈上)的类型。派生类到基类的强制转换通常没有问题;但派生类对象先隐式转换为基类,再强制转换为基类的另一派生类,将引起运行时异常InvalidCastException。如, class Animal{ } class Reptile : Animal { } class Mammal : Animal { } class UnSafeCast { static void Main() { Test(new Mammal()); } static void Test(Animal a) { //引起运行时异常InvalidCastException,因Mammal不能转化为Reptile Reptile r = (Reptile)a; } } 可用C#提供的is和as运算符,在实际执行强制转换之前测试兼容性。 转换操作符 转换运算符可将对象从一种类型转换为另一种类型。转换运算符可以是隐式的或显式的。隐式转换运算符不需要在源代码中指定类型转换即可执行转换。显式转换运算符则要求在源代码中指定类型转换才能执行转换

文档评论(0)

hf916589 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档