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

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# 转换

相关文章:

  • 2022-03-07
  • 2022-12-23
  • 2021-07-12
  • 2021-12-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
猜你喜欢
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2021-12-28
  • 2021-11-21
相关资源
相似解决方案