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

淺析.NET類型轉換的四種方法

編輯:關於.NET

.NET類型轉型的四種做法:

◆ 強制轉型:(int)變量名稱

◆ int.Parse(字符串變量名稱)

◆ Convert.To類型(變量名稱)

◆ TryParse

強制轉型 (casting)

◆ 浮點數會做無條件捨去,失去精確度

◆ 可處理 object 轉 int,但遇到 object 為 null 時會產生 error

◆ 某些情況下,如 object 轉型成 int,有時正常,但有時會無故發生 error,原因不明

◆ 無法處理 string 轉 int (程序中常會用到的功能)

◆ 千萬不可用來處理 char 類型,否則傳回的是 ASCII 碼,而不是字面上的數字

int.Parse(字符串變量名稱)

◆ 只能處理 string 轉 int 或其它類型,無法處理 string 以外的類型,功能有限

◆ 遇到 string 為 null 或 string.Empty 時,仍會造成程序 error

◆ 亦可變化使用:「類型.Parse(string)」,但參數只能丟 string

Convert.To類型(變量名稱)

◆ 可處理所有 .NET 的類型、功能完整

◆ 可處理 null,幾乎不會因轉型造成程序 error

◆ 透過「Convert.ToInt32(變量)」轉型成 int 時,變數若為 object 或 string 類型,當其值為 null 時,會傳回 0,不會造成程序 error

◆ 續前一點,若此 string 類型的變量,其原始值為 string.Empty,在轉型成 int 時,仍會造成程 序 error

◆ 浮點數會做四捨五入

◆ 千萬不可用來處理 char 類型,否則傳回的是 ASCII 碼,而不是字面上的數字

測試范例:

protected void Page_Load(object sender, EventArgs e)
{
  char i1 = '0';
  char i2 = '9';
  string i1 = null;
  string i2 = "9";
  string i3 = string.Empty; 
  int i1 = 0;
  int i2 = 9;
  double i1 = 1.2345;
  double i2 = 1.5678;
  object i1 = null;
  object i2 = 9;

  // 浮點數會做無條件捨去,某些情況會無故產生 error
  Response.Write((int)i1 + ", " + (int)i2 + "<br>");

  // 只能處理「字符串」轉型成其它類型,功能有限
  Response.Write(int.Parse(i1) + ", " + int.Parse(i2) + "<br>"); 

  // 可處理所有類型及 Null,但浮點數會做四捨五入。推薦使用,但不可處理 char 類型
  Response.Write(Convert.ToInt32(i1) + ", " + Convert.ToInt32(i2) + "<br>"); 
}

遇到要特別注意數字、金額精確度的項目時,應特別注意。

TryParse

這個方法是 .NET Framework 2.0 版的新功能。將數字的字串表示轉換成它的對等32 位元帶正負號 的整數。傳回指示作業是否成功的值。 TryParse 方法與 Parse 方法類似,除了TryParse 方法在轉換失 敗時不會擲回例外狀況以外。

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