📜  C#|型铸(1)

📅  最后修改于: 2023-12-03 14:40:30.110000             🧑  作者: Mango

C# 类型转换

C# 的类型转换是将一个数据类型转换为另一个数据类型的过程。类型转换分为两种:隐式类型转换和显式类型转换。

隐式类型转换

隐式类型转换是指无需显式指定转换类型,就可以直接将一个数据类型转换为另一个数据类型。例如,将一个 int 类型的变量赋值给一个 long 类型的变量:

int a = 10;
long b = a; // 隐式类型转换

在上面的代码中,编译器会自动将变量 a 的值转换为 long 类型,并赋给变量 b

以下是可以进行隐式类型转换的一些数据类型:

  • sbyte → short → int → long
  • byte → ushort → uint → ulong
  • char → ushort → int → uint → long → ulong → float → double → decimal
  • float → double
显式类型转换

显式类型转换是指需要显式指定转换类型,才能将一个数据类型转换为另一个数据类型。例如,将一个 double 类型的变量转换为 int 类型:

double a = 10.5;
int b = (int)a; // 显式类型转换

在上面的代码中,我们使用了 (int) 来显式将变量 a 的值转换为 int 类型,并赋给变量 b

以下是一些常用的显式类型转换:

  • (int)
  • (long)
  • (float)
  • (double)
  • (byte)
  • (short)
  • (sbyte)
  • (char)
类型转换的异常

在类型转换时需要注意,有些转换是不可能进行的,例如将一个字符串转换为 int 类型:

string a = "10";
int b = (int)a; // 编译时错误

上面的代码会在编译时出现错误,因为不能将字符串转换为 int 类型。如果在运行时进行无法转换的类型转换,会抛出 System.InvalidCastException 异常。因此,在进行类型转换时,一定要注意数据类型的兼容性。

总结

C# 的类型转换分为隐式类型转换和显式类型转换,隐式类型转换无需指定转换类型,显式类型转换需要显式指定转换类型。在进行类型转换时,要注意数据类型的兼容性,否则会抛出异常。