C# 编程/类型转换
外观
< C# 编程
类型转换是将值从一种类型转换为另一种类型的方式。主要存在两种类型的转换,隐式转换和显式转换。当值类型转换为对象或引用类型时,会发生装箱。
隐式转换是编译器自动执行值转换的方式。当且仅当不会发生信息丢失时才会发生这种情况。例如,将数据从较小的整数类型转换为较大的类型,或将派生类型转换为基类型。
int iValue = 5000;
double dDistance = iValue ;
public class Animal { […] };
public class Mammal : Animal { […] };
public class Cat : Mammal
{
[…]
}
Mammal mammal = new Cat();
此外,此示例也可以工作。
int num = 9513458219;
long bigNum = num;
这种类型的转换必须由开发人员指定,因为可能会丢失数据。
double dPi = 3.1415926535;
int iValue = (int)dPi; // iValue = 3
int iValue_2 = Convert.ToInt32(dPi); // iValue_2 = 3
double dPi = 3.1415926535;
object oPi = (object) dPi;
对于引用类型,除非已知对象永远不会引发异常,否则不建议使用直接转换。一种常见的最佳实践是使用 as 关键字。
///<summary>
/// Function attempts to cast object to cat.
/// If object cannot be cast to cat, returns null
///</summary>
public Cat ConvertToCat(object obj)
{
Cat c = obj as Cat;
return c;
}
!重要:仅当您在转换后进行空值检查并处理异常情况时,使用“as”关键字才是最佳实践。在其他情况下,最好使用显式转换,然后调试 NullReferenceException