讓我們一起學(xué)習(xí)C# 類型轉(zhuǎn)換
本文轉(zhuǎn)載自微信公眾號「后端Q」,作者conan 。轉(zhuǎn)載本文請聯(lián)系后端Q公眾號。
類型轉(zhuǎn)換從根本上說是類型鑄造,或者說是把數(shù)據(jù)從一種類型轉(zhuǎn)換為另一種類型。在 C# 中,類型鑄造有兩種形式:
隱式類型轉(zhuǎn)換 - 這些轉(zhuǎn)換是 C# 默認(rèn)的以安全方式進(jìn)行的轉(zhuǎn)換, 不會(huì)導(dǎo)致數(shù)據(jù)丟失。例如,從小的整數(shù)類型轉(zhuǎn)換為大的整數(shù)類型,從派生類轉(zhuǎn)換為基類。
顯式類型轉(zhuǎn)換 - 顯式類型轉(zhuǎn)換,即強(qiáng)制類型轉(zhuǎn)換。顯式轉(zhuǎn)換需要強(qiáng)制轉(zhuǎn)換運(yùn)算符,而且強(qiáng)制轉(zhuǎn)換會(huì)造成數(shù)據(jù)丟失。
下面的實(shí)例顯示了一個(gè)顯式的類型轉(zhuǎn)換:
- 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
下面的實(shí)例把不同值的類型轉(zhuǎn)換為字符串類型:
- 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
在C#中,我們可以看到三種強(qiáng)制類型轉(zhuǎn)換,比如強(qiáng)制轉(zhuǎn)換成有符號32位整型,可以找到下面三種方式:
①(int)()
②Convert.ToInt32()
③int.Parse()
as 轉(zhuǎn)換符
as 操作符的工作方式與強(qiáng)制類型轉(zhuǎn)換一樣 ,只是它永遠(yuǎn)不會(huì)拋出一個(gè)異常,如果對象不能轉(zhuǎn)換,結(jié)果就是null,強(qiáng)制轉(zhuǎn)換則會(huì)拋出異常。