類(lèi)型轉(zhuǎn)換從根本上說(shuō)是類(lèi)型鑄造,或者說(shuō)是把數(shù)據(jù)從一種類(lèi)型轉(zhuǎn)換為另一種類(lèi)型。在 C# 中,類(lèi)型鑄造有兩種形式:

  • 隱式類(lèi)型轉(zhuǎn)換 - 這些轉(zhuǎn)換是 C# 默認(rèn)的以安全方式進(jìn)行的轉(zhuǎn)換。例如,從小的整數(shù)類(lèi)型轉(zhuǎn)換為大的整數(shù)類(lèi)型,從派生類(lèi)轉(zhuǎn)換為基類(lèi)。

  • 顯式類(lèi)型轉(zhuǎn)換 - 這些轉(zhuǎn)換是通過(guò)用戶使用預(yù)定義的函數(shù)顯式完成的。顯式轉(zhuǎn)換需要強(qiáng)制轉(zhuǎn)換運(yùn)算符。

下面的實(shí)例顯示了一個(gè)顯式的類(lèi)型轉(zhuǎn)換:

namespace TypeConversionApplication
{
    class ExplicitConversion
    {
        static void Main(string[] args)
        {
            double d = 5673.74;
            int i;

            // 強(qiáng)制轉(zhuǎn)換 double 為 int
            i = (int)d;
            Console.WriteLine(i);
            Console.ReadKey();
            
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

5673

C# 類(lèi)型轉(zhuǎn)換方法

C# 提供了下列內(nèi)置的類(lèi)型轉(zhuǎn)換方法:

序號(hào)方法 & 描述
1ToBoolean
如果可能的話,把類(lèi)型轉(zhuǎn)換為布爾型。
2ToByte
把類(lèi)型轉(zhuǎn)換為字節(jié)類(lèi)型。
3ToChar
如果可能的話,把類(lèi)型轉(zhuǎn)換為單個(gè) Unicode 字符類(lèi)型。
4ToDateTime
把類(lèi)型(整數(shù)或字符串類(lèi)型)轉(zhuǎn)換為 日期-時(shí)間 結(jié)構(gòu)。
5ToDecimal
把浮點(diǎn)型或整數(shù)類(lèi)型轉(zhuǎn)換為十進(jìn)制類(lèi)型。
6ToDouble
把類(lèi)型轉(zhuǎn)換為雙精度浮點(diǎn)型。
7ToInt16
把類(lèi)型轉(zhuǎn)換為 16 位整數(shù)類(lèi)型。
8ToInt32
把類(lèi)型轉(zhuǎn)換為 32 位整數(shù)類(lèi)型。
9ToInt64
把類(lèi)型轉(zhuǎn)換為 64 位整數(shù)類(lèi)型。
10ToSbyte
把類(lèi)型轉(zhuǎn)換為有符號(hào)字節(jié)類(lèi)型。
11ToSingle
把類(lèi)型轉(zhuǎn)換為小浮點(diǎn)數(shù)類(lèi)型。
12ToString
把類(lèi)型轉(zhuǎn)換為字符串類(lèi)型。
13ToType
把類(lèi)型轉(zhuǎn)換為指定類(lèi)型。
14ToUInt16
把類(lèi)型轉(zhuǎn)換為 16 位無(wú)符號(hào)整數(shù)類(lèi)型。
15ToUInt32
把類(lèi)型轉(zhuǎn)換為 32 位無(wú)符號(hào)整數(shù)類(lèi)型。
16ToUInt64
把類(lèi)型轉(zhuǎn)換為 64 位無(wú)符號(hào)整數(shù)類(lèi)型。

下面的實(shí)例把不同值的類(lèi)型轉(zhuǎn)換為字符串類(lèi)型:

namespace TypeConversionApplication
{
    class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 75;
            float f = 53.005f;
            double d = 2345.7652;
            bool b = true;

            Console.WriteLine(i.ToString());
            Console.WriteLine(f.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(b.ToString());
            Console.ReadKey();
            
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

75
53.005
2345.7652
True