基于C#的数据类型转换
int x;long y=123456789101112x=(int)y;控制台。write line(x);产出结果:
我们知道长型的取值范围是-9223372036854775800 ~ 922372036854775807;int的类型是:-2147483648~ 2147483647。在上面的代码中,由于long变量的值超过了int可以容纳的最大值,数据丢失。因此,任何可能导致数据丢失或引发异常的转换都需要执行显式转换;相反,执行隐式转换。用Check检查上述代码。
从图中可以看出,上面的转换抛出了溢出异常,显式转换可能不安全(强扭的瓜不甜);但是如果long的值在int的有效值范围内,则不会引发异常。我们再举一个例子:int I;双d=6.88I=(int)d;控制台。write line(I);输出:6如果像这样出现精度损失,我们可以称之为缩小转换。C#不同于C或C,在C或C中,C#的编译器可以直接告诉我们,如果接受精度损失,就必须使用显式类型转换。为什么我们在初始化浮点类型时总是在数字后面加上f?因为C#认为小数点像2.3这样的常量是精度更高的双精度类型,编译器会因为精度损失而拒绝执行。因此,当给浮点数赋值时,要么显式地将常量转换为浮点数的值,要么直接在常量后加上' f '(小写也可以)。当然,我们一般在处理浮点数的时候最好直接用double,这样可以避免很多类型转换。现在我们换个方式:。
这样,如果将一个低精度值赋给一个高精度变量,我们就称之为加宽变换。以下是显式转换的一些限制:在值类型中,只能在数字、字符(char)和枚举(enum)中执行转换;Bool不能直接转换成其他类型,其他类型也不能直接转换成bool类型。第二部分:字符串与值类型的转换主要使用:parse(),convert,tostring () string="值类型:string aa=' 123int num=int。解析(aa);双db=双。解析(aa);当然,parse方法中有很多重载的方法,我就不一一列举了。
Convert不可扩展,仅支持预定义数量的类型;他允许从任何基本类型到其他基本类型的转换字符串=true;bool b=转换。ToBoolean(字符串)?布尔。parse(str): false;控制台。write line(b);输出:TrueTryParse听说这个东西在1.0版本只有双份,是从2.0开始普及的。TryParse()的用法与Parse()类似,只是它返回一个布尔值,该值通过out赋值给变量。它们的区别在于,TryParse转换失败不会造成异常,只会返回false;转换后的值为空,或者格式不正确、溢出等。如果是数字类型,则out值为0,如果是字符类型,则为未定义的值,Boolean为false,字符串str1='abc ',str2=' 123int a,b;里面的TryParse(str1,out a);里面的TryParse(str2,out b);控制台。write line(a);控制台。write line(b);输出:0 123 value type="string ":最后是tostring()方法,可以对任意数据类型进行toString,toString()可以定义自己的转换方法。tostring()是平时最常用的一个,这个我就不多说了。ps:写起来很乱。如果你想到什么要写,就当是“散文”。
版权声明:基于C#的数据类型转换是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。