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