首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 型別轉換完全指南:隱式、顯式與 Convert 類別實戰

     編輯:關於C#

為什麼需要型別轉換?

電腦以二進位儲存資料,變數型別決定了位元的解讀方式。實務上頻繁需要在不同型別間轉換,例如將使用者輸入的字串轉為數值進行運算。

string input = Console.ReadLine();
double number = Convert.ToDouble(input); // 字串轉數值

一、隱式轉換

無需撰寫額外程式碼,編譯器自動完成,發生在資料不會遺失的情況(如小型別轉大型別)。

ushort num1;
char ch = 'a';
num1 = ch; // 隱式轉換:char (16-bit) -> ushort (16-bit)

num1 = 98;
// ch = num1; // 錯誤:ushort 無法隱式轉為 char(可能超出字元範圍)
ch = (char)num1; // 需顯式轉換

隱式轉換示意 隱式轉換結果 顯式轉換結果

二、顯式轉換

可能導致資料遺失或溢位,必須由開發者明確指示,兩種主要方式:

1. 強制轉換運算子 (Cast)

int age = 22;
double myAge = (double)age; // int -> double

float price = 55.55f;
decimal coupon = (decimal)price; // float -> decimal

2. Convert 類別靜態方法

提供標準化、支援格式化與例外處理的轉換方法:

float price = 55.55f;
decimal coupon = Convert.ToDecimal(price);
string str = Convert.ToString(123);
DateTime dt = Convert.ToDateTime("2024-01-01");

Convert 方法轉換結果

Convert 常用方法速查

方法目標型別
ToBooleanbool
ToByte / ToSBytebyte / sbyte
ToCharchar
ToInt16 / ToInt32 / ToInt64short / int / long
ToUInt16 / ToUInt32 / ToUInt64ushort / uint / ulong
ToSingle / ToDoublefloat / double
ToDecimaldecimal
ToDateTimeDateTime
ToStringstring

實務上最常用:ToString()、ToInt32()、ToDouble()、ToDateTime()。

三、隱式轉換對照表(節錄)

來源型別可隱式轉換為目標型別:

來源型別目標型別
byteshort, ushort, int, uint, long, ulong, float, double, decimal
sbyteshort, int, long, float, double, decimal
shortint, long, float, double, decimal
ushortint, uint, long, ulong, float, double, decimal
intlong, float, double, decimal
uintulong, float, double, decimal
longfloat, double, decimal
ulongfloat, double, decimal
floatdouble
charushort, int, uint, long, ulong, float, double, decimal

表格無需背誦,編譯器會在型別不相容時提示錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved