其他分享
首页 > 其他分享> > 基类、子类之间的类型转换

基类、子类之间的类型转换

作者:互联网

对象引用可以
隐式向上转换为基类引用
显式地向下转换为子类引用

Plant是PositivePlant和NegativePlant的基类

PositivePlant positivePlant = new PositivePlant() { Name = "阳性植物", MinimumSurvivalTemperature = 10 };
//子转基:隐式
Plant plant = positivePlant;
//Plant plant = (Plant)positivePlant;//正确的写法
//基转子:显式
PositivePlant convertFromPlant = (PositivePlant)plant;
//PositivePlant convertFromPlant = plant;//错误的写法
Console.WriteLine($"positivePlant == plant:{positivePlant == plant}");//true
Console.WriteLine($"positivePlant == convertFromPlant:{positivePlant == convertFromPlant}");//true

//as运算符
Plant plant2 = positivePlant as Plant;
PositivePlant convertFromPlant2 = plant2 as PositivePlant;
Console.WriteLine($"positivePlant == plant2:{positivePlant == plant2}");//true
Console.WriteLine($"positivePlant == convertFromPlant2:{positivePlant == convertFromPlant2}");//true

示例代码

BaseAndSubClassTypeConversion

参考资料

C# 转换

标签:类型转换,Plant,Console,PositivePlant,子类,plant,WriteLine,基类,positivePlant
来源: https://blog.51cto.com/u_15180952/2732713