C# 语法练习(4): 类型转换


使用 Convert 类:

ToBoolean  -> bool

ToByte     -> byte

ToChar     -> char

ToDateTime -> DateTime

ToDecimal  -> decimal

ToDouble   -> double

ToInt16    -> short

ToInt32    -> int

ToInt64    -> long

ToSByte    -> sbyte

ToSingle   -> float

ToString   -> string

ToUInt16   -> ushort

ToUInt32   -> uint

ToUInt64   -> ulong




using System;



class MyClass

{

    static void Main()

    {

        int num;

        string str;



        num = 99;

        str = Convert.ToString(num);

        Console.WriteLine(str);



        str = "123";

        num = Convert.ToInt32(str);

        Console.WriteLine(num);



        Console.ReadKey();

    }

}


 
   

隐式转换, 只要容得下就行:


using System;



class MyClass

{

    static void Main()

    {

        byte n = byte.MaxValue;



        short n1 = n;

        int   n2 = n;

        long  n3 = n;



        Console.WriteLine("{0},{1},{2}", n1, n2, n3); //255,255,255



        Console.ReadKey();

    }

}


 
   

显示转换, 可能会因溢出而丢失数据:


using System;



class MyClass

{

    static void Main()

    {

        ulong n = ulong.MaxValue;



        byte   n1 = (byte)n;

        ushort n2 = (ushort)n;

        uint   n3 = (uint)n;



        Console.WriteLine("{0},{1},{2}", n1, n2, n3); //255,65535,4294967295



        Console.ReadKey();

    }

}


 
   

溢出检查:


using System;



class MyClass

{

    static void Main()

    {

        int i;

        byte b;



        i = 255;

        b = (byte)i;             /* i 在 byte 的范围内, 不会溢出 */

        b = unchecked((byte)i);  /* 同上一行, 不做溢出检查 */

        Console.WriteLine(b);    // 255



        i++;

        b = (byte)i;             /* i 超出 byte 的范围内, 会溢出 */

        b = unchecked((byte)i);  /* 同上一行, 不做溢出检查 */

        Console.WriteLine(b);    // 0



        i = 255;

        b = checked((byte)i);    /* 可以通过溢出检测 */

        Console.WriteLine(b);    // 255



        i++;

        b = checked((byte)i);    /* 不能通过溢出检测, 会报错 */

        Console.WriteLine(b);



        Console.ReadKey();

    }

}


 
   

你可能感兴趣的:(类型转换)