Чтобы сделать это, CarSeg
и NonAirSeg
должны иметь общий интерфейс или базовый класс, который будет типом для carSegment
. Например, если они оба реализуют интерфейс с именем ISegment
, то вы можете сделать это:
ISegment carSegment = null;
Тогда назначения в вашем операторе switch
будут работать в их текущем состоянии. То же самое верно, если они реализуют общий класс предков.
Уловка в том, что carSegment
- это тот общий тип и только этот общий тип. Если вам нужны подробности для этих двух разных типов, вам, вероятно, придется переосмыслить свой дизайн за пределы этого одного сегмента кода.