C# 类型转换教程 - 隐式转换、显式转换与Convert类详解

全面掌握C#类型转换:详解隐式类型转换、显式强制转换、Convert类方法的使用,包含类型转换表、数据丢失处理和实际应用示例

什么是类型转换?

类型转换(Type Casting)是将数据从一种类型转换为另一种类型的过程。在C#编程中,这是非常重要的概念,因为不同的数据类型有不同的用途和限制。

为什么类型转换很重要?

  • 数据兼容性:在不同类型间进行运算和操作
  • 内存优化:选择合适的数据类型节省内存空间
  • 用户输入处理:将字符串输入转换为数值类型
  • API交互:不同系统间的数据格式转换

C#类型转换的三种主要方式

隐式类型转换(默认)

编译器自动进行的类型转换,将较小的类型转换为较大的类型大小,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。

char -> int -> long -> float -> double

显式类型转换(强制类型转换)

程序员手动进行的强制类型转换,可能导致数据丢失

double -> float -> long -> int -> char

Convert类方法

使用内置的Convert类方法进行安全的类型转换


隐式类型转换

将较小尺寸的类型传递给较大尺寸的类型时,会自动执行隐式转换:

实例

int myInt = 9;
double myDouble = myInt;       // 自动转换: int 到 double

Console.WriteLine(myInt);      // 输出 9
Console.WriteLine(myDouble);   // 输出 9

运行实例 »


显式类型转换

必须手动执行显式强制转换,方法是将类型放在值前面的括号中:

实例

double myDouble = 9.78;
int myInt = (int) myDouble;    // 手动转换:double 到 int

Console.WriteLine(myDouble);   // 输出 9.78
Console.WriteLine(myInt);      // 输出 9

运行实例 »


类型转换方法

还可以使用内置方法显式转换数据类型,例如 Convert.ToBoolean, Convert.ToDouble, Convert.ToString, Convert.ToInt32 (int) and Convert.ToInt64 (long):

实例

int myInt = 10;
double myDouble = 5.25;
bool myBool = true;

Console.WriteLine(Convert.ToString(myInt));    // 将 int 转换为字符串
Console.WriteLine(Convert.ToDouble(myInt));    // 将 int 转换为 double
Console.WriteLine(Convert.ToInt32(myDouble));  // 将 double 转换为 int
Console.WriteLine(Convert.ToString(myBool));   // 将布尔转换为字符串

运行实例 »

为什么要转换数据类型?

很多时候不需要进行数据类型转换。但有时必须,比如使用用户输入时,请看下一章以查看示例。