无为清净楼资源网 Design By www.qnjia.com

 

int x; long y = 123456789101112; x = (int)y; Console.WriteLine(x);

  输出结果:

C#基础之数据类型转换

  我们知道long类型的取值范围是-9223372036854775805~+9223372036854775807;int类型的是:-2147483648~+2147483647

上面的代码中,由于long变量的值超过了int能容纳的最大值,造成了数据的丢失;像这样有可能造成数据丢失或引发异常的任何转换都需要执行显式转换(explicit);

相反的就是执行隐式转换(implicit).

  用chencked检查上面的代码

C#基础之数据类型转换从图得知上面的转换抛出了一个溢出异常,显式转换都可能不安全, (强扭的瓜就是不甜);但是如果

long的值在int的有效值范围内,这样是不会引发异常的.

  下面我们再来看个例子:

int i; double d = 6.88; i = (int)d; Console.WriteLine(i);

 

  输出结果:6

像这样发生精度丢失的我们可以把他叫做窄化转换,C#与C或C++不同,在C或C++中是可以直接将i=d的.C#的编译器告诉我们,如果接受精度损失,你就得用显式类型转换.

  为什么我们初始化float类型的时候数字的后面都要在数值后面加"F"; 因为C#认为像2.3这样的带小数点的常量是拥有更高精度的double类型,编译器将因为损失精度

而拒绝而执行。所以在给float赋值时要么显式的将常量转换成float的值,要么直接在常量的后面加"F"(小写的也可以).当然我们一般在处理浮点数的时候最好还是直接使用

double这样就能避免很多类型转换.

  现在我们换种方式:

C#基础之数据类型转换像这样把低精度的值赋给高精度变量,我们就把他叫做宽化转换。

  下面来简单说说显式转换的一些限制:

   在值类型中,只能在数字、字符(char)、枚举(enum)中转换;

   不能把bool直接转换成其他类型,其他类型特不能直接转换成bool类型.

 第二部分:字符串与值类型的转换

  主要是用到: Parse(),Convert,ToString()

string =》值类型  :

string aa = "123"; int num = int.Parse(aa); double db = double.Parse(aa);

   当然parse方法还有很多重载方法,我就不一一列出来了

C#基础之数据类型转换

   Convert是不可扩展的,只支持预定义数量的类型;他允许从任何基本类型转换到其他的基本类型

string str = "true"; bool b = Convert.ToBoolean(str) ? bool.Parse(str) : false; Console.WriteLine(b);

  输出结果:True

  TryParse听说这个东西在1.0版本的时候只有double才有,从2.0才普及的;TryParse()用法也和Parse()方法差不多,只是他返回的是bool值,通过out把值赋给变量

他两的区别:TryParse转换失败不会引发异常,只会返回false;被转换的值是null,或者格式不对、溢出等等情况,

如果是数值类型out出来的值是0,如果是字符类型则是未定义的值,布尔的是false,....

string str1 = "abc",str2 = "123"; int a, b; int.TryParse(str1,out a); int.TryParse(str2,out b); Console.WriteLine(a); Console.WriteLine(b);

输出结果:  0 

     123

  值类型 =》string:

  最后就是tostring()方法,任何数据类型你都可以toString一下,而且toString()可以自己定义转换方法,tostring()是平时用的最多的了,这个就不多说了.

 ps:写的很乱,想到什么写什么,就当“散文”看吧 

标签:
数据转换

无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。