【C#基础】类型转换

来源:互联网 发布:周杰伦 红模仿知乎 编辑:程序博客网 时间:2024/05/13 05:21

1. 隐式类型转换

隐式转换就是系统默认的、不需要加以声明就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。比如从int类型转换到long类型就是一种隐式转换。隐式转换一般不会失败,转换过程中也不会导致信息丢失。

2.显式转换(强制转换)

显式转换需要强制转换运算符。 在转换中可能丢失信息时或在出于其他原因转换可能不成功时,必须进行强制转换。典型的例子包括从数值到精度较低或范围较小的类型的转换和从基类实例到派生类的转换。

注意:Char能转换成其它类型,但其它类型不能转换为char类型。不存在浮点型与 decimal 类型之间的隐式转换。


3.比而较之

隐式转换各显式转换要求是同类型的,就是说两种数据类型必须兼容,隐式转换是向上转型(相当是子类转父类),而强制类型转换则是向下转型(相当是父类转子类),就好像Double型的可以包含int型一样。而强制转换可以是不是同一种类型。对于表示数值的基本数据类型来说,数值范围小的数据(精确度低)类型转换成数值范围大的数据(精确度高)类型可以进行隐式转换,而反过来则必须进行显示转换。

代码举例

class Conversions{    static void Main()    {
//隐式转换相当于装箱过程;显示转换相当于拆箱        int a=5;        long  b;        b=a;//隐式转换        Console.WriteLine(b);        long c=5;        int d;        d=(int)c;//显示转换        Console.WriteLine(d);        Console.WriteLine(int.MaxValue);        Console.WriteLine(long.MaxValue);    }    }

5.转换语言

(1)   (int)变量名[强制类型转换]:该转换方式主要用于数字类型转换

(2)   int.Parse(string类型变量名)该方式是将数字内容的字符串转为int类型

(3)   int.TryParse(string s, out int result)该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。如果转换成功返回 true如果转换失败返回false。很明显,最后一个参数为输出值,如果转换失败,输出值为0;如果转换成功,则输出相应的值。

(4)   Convert.ToInt32该方式不仅可以将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,在转型成int时,仍会造成程序错误。

代码举例:
namespace parse类型转换{    class Program    {        static void Main(string[] args)        {            //使用convert进行转换,过得去就成功了,过不去就抛异常;convert内部调用的是类型的.Parse();            double number = double.Parse("123.2");            Console.WriteLine(number);            Console.ReadKey();//输出结构123.2
            //int.tryParse;尝试着将一个字符串转换成int类型;使用tryParse进行类型转换,成功的时候返回true,并把值返回到第二个参数里面。
   //失败时,返回false,将第二个参数赋值为0            double num = 10;            bool result = double.TryParse("ab123abc",out num);            Console.WriteLine(num);            Console.ReadKey();//返回值为0        }    }}


0 0
原创粉丝点击