程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 值類型轉換的幾種方式,類型轉換幾種

值類型轉換的幾種方式,類型轉換幾種

編輯:C#入門知識

值類型轉換的幾種方式,類型轉換幾種


引用類型的轉換方式有隱式轉換、強制轉換、as轉換等。值類型的轉換方式也有不少,本篇稍稍歸納。


□ 隱式轉換

 

int i = 10;
float f = i;
Console.WriteLine(f);

如果是值類型,當被轉換變量的數值范圍小於目標變量的數值范圍,就可以實現隱式轉換;如果是引用類型,子類可以隱式轉換成父類。

 

□ 強制轉換

 

float f = 10.56f;
int i = (int) f;
Console.WriteLine(i);

如果是值類型,當被轉換變量的數值范圍大於目標變量的數組范圍,考慮使用強制轉換;如果是引用類型,父類可以強制轉換成某個子類。值得注意的是:強制轉換可能會導致損失一些精度。

 

□ 通過System.Convert的靜態方法實施轉換

 

比如把一個整型轉換成Sysem.Char類型。

char result = Convert.ToChar(68);
Console.WriteLine(result);

通過System.Convert轉換失敗會報OverflowException異常。

 

□ 通過值類型的靜態方法

 

把字符串轉換成int類型。

string str = "11";
int i = int.Parse(str);
Console.WriteLine(i);

 

如果字符串中包含非數字,會拋出System.FormatException異常。

string str = "11a";
int i = int.Parse(str);
Console.WriteLine(i);

 

如何避免這種情況呢?
--使用int.TryParse方法可以避免這種情況。

 

string str = "11a";
int result = 1;
bool isSuccess = int.TryParse(str, out result);
if (isSuccess)
{
    Console.WriteLine(result);
}
else
{
    Console.WriteLine("轉換失敗");
}


           

□ 通過IConvertible接口方法

 

由於所有的值類型都實現了IConvertible接口,可以通過該接口的方法實現值類型轉換。

char result =  ((IConvertible) 68).ToChar(null);
Console.WriteLine(result);

如果轉換失敗,會拋出System.InvalidCastException異常。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved