1. 隐式类型转换(Implicit Conversion):
在某些情况下,C# 允许从一个数据类型隐式地转换为另一个数据类型,而无需显式指定转换操作。这通常发生在从小范围类型到大范围类型的转换时。
int intValue = 10;
double doubleValue = intValue; // 隐式类型转换
在上面的例子中,int 类型的值被隐式转换为 double 类型。
2. 显式类型转换(Explicit Conversion):
在某些情况下,需要显式地告诉编译器进行类型转换。这通常发生在从大范围类型到小范围类型、不同数据类型之间的转换时。
使用强制类型转换:
double doubleValue = 10.5;
int intValue = (int)doubleValue; // 显式类型转换
使用 Convert 类:
double doubleValue = 10.5;
int intValue = Convert.ToInt32(doubleValue); // 显式类型转换
使用 Parse 方法:
string numberString = "123";
int intValue = int.Parse(numberString); // 显式类型转换
3. 装箱(Boxing)和拆箱(Unboxing):
装箱是将值类型转换为引用类型的过程,而拆箱是将引用类型转换为值类型的过程。
int intValue = 42;
// 装箱
object boxedValue = intValue;
// 拆箱
int unboxedValue = (int)boxedValue;
请注意,装箱和拆箱可能会导致性能损失,因为它们涉及到在堆上分配内存。
4. as 操作符:
as 操作符用于尝试将一个对象转换为指定的引用类型,如果转换失败,返回 null。
object obj = "Hello, C#!";
string str = obj as string;
if (str != null)
{
Console.WriteLine(str);
}
else
{
Console.WriteLine("Conversion failed.");
}
在进行类型转换时,务必确保目标类型可以接受原始类型的值,否则会导致运行时异常。在某些情况下,你可能需要使用异常处理机制来处理转换失败的情况。
转载请注明出处:http://www.zyzy.cn/article/detail/6337/C#