類型轉(zhuǎn)換可將一種類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型。它也被稱為類型鑄造。在 C# 中,類型轉(zhuǎn)換有兩種形式:
隱式類型轉(zhuǎn)換 - 這種類型的轉(zhuǎn)換由 C# 以類型安全的方式執(zhí)行。例如,從小到大的整數(shù)類型的轉(zhuǎn)換和從派生類到基類的轉(zhuǎn)換。
顯式類型轉(zhuǎn)換 - 這種類型的轉(zhuǎn)換由使用預(yù)定義函數(shù)的用戶明確定義來完成,顯式轉(zhuǎn)換需要轉(zhuǎn)換運算符。
以下示例顯示了顯式類型轉(zhuǎn)換用法:
using System;namespace TypeConversionApplication { class ExplicitConversion { static void Main(string[] args) { double d = 9999.98; int i; // cast double to int. i = (int)d; Console.WriteLine(i); Console.ReadKey(); } } }123456789101112131415161718復(fù)制代碼類型:[csharp]
當(dāng)編譯和執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果:
99991復(fù)制代碼類型:[csharp]
C# 提供以下內(nèi)置類型轉(zhuǎn)換方法:
序號 | 方法 | 描述 |
---|---|---|
1 | ToBoolean() | 如果可能,將類型轉(zhuǎn)換為布爾值。 |
2 | ToByte() | 將類型轉(zhuǎn)換為字節(jié)類型值。 |
3 | ToChar() | 如果可能,將類型轉(zhuǎn)換為單個Unicode字符。 |
4 | ToDateTime() | 將類型(整數(shù)或字符串類型)轉(zhuǎn)換為日期時間結(jié)構(gòu)。 |
5 | ToDecimal() | 將浮點或整數(shù)類型轉(zhuǎn)換為十進制類型。 |
6 | ToDouble() | 將類型轉(zhuǎn)換為Double 類型。 |
7 | ToInt16() | 將類型轉(zhuǎn)換為16 位整數(shù)。 |
8 | ToInt32() | 將類型轉(zhuǎn)換為32 位整數(shù)。 |
9 | ToInt64() | 將類型轉(zhuǎn)換為64 位整數(shù)。 |
10 | ToSbyte() | 將類型轉(zhuǎn)換為有符號字節(jié)類型。 |
11 | ToSingle() | 將類型轉(zhuǎn)換為小浮點數(shù)。 |
12 | ToString() | 將類型轉(zhuǎn)換為字符串。 |
13 | ToType() | 將類型轉(zhuǎn)換為指定的類型。 |
14 | ToUInt16() | 將類型轉(zhuǎn)換為unsigned int 類型。 |
15 | ToUInt32() | 將類型轉(zhuǎn)換為unsigned double 類型。 |
16 | ToUInt64() | 將類型轉(zhuǎn)換為無符號大整數(shù)。 |
以下示例將各種值類型轉(zhuǎn)換為字符串類型:
using System;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(); } } }12345678910111213141516171819202122復(fù)制代碼類型:[csharp]
當(dāng)編譯和執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果:
7553.0052345.7652True