班上课?或者是其他东西

时间:2011-02-04 17:17:34

标签: c# inheritance switch-statement

我的老师为本周的实验室提供了一些代码来帮助我,遗憾的是它有点帮助,但还不够。在“selectedType”的上下文中,我不确定,这不是我在这里的原因。我在这里是因为我想知道是否有人可以解释“Airplane.Type.Fighter”可能是什么。 飞机是连接到这个的类。但是我不确定Type是否是另一个应该在Airplane内部的类。

思想?

switch (selectedType)
{
  case Airplane.Type.Fighter:
    newPlane = new FighterJet(name, position, cboPlaneType.SelectedItem);
    break;
  case Airplane.Type.Passenger:
    int numPassengers = Utilities.getIntegerInputValue(txtNumberPassengers);
    newPlane =
    new PassengerAirplane(name, position, txtType.Text, txtFlightNumber.Text, numPassengers);
    break;
  default:
    newPlane = new Airplane(name, position);
    break;
  }

6 个答案:

答案 0 :(得分:4)

嗯,我们只能在这里猜测。我的猜测是Airplane是当前类的属性,Airplane.Typeenumeration,其值为FighterJetPassenger

正如肖恩在评论中指出的那样,这是一个内在的枚举的好机会。

答案 1 :(得分:2)

public class Airplane
{
    public enum Type
    {
        Fighter,
        Passenger
    }
}

答案 2 :(得分:1)

看起来好像是enum

答案 3 :(得分:1)

您需要在此处写下飞机的定义,以获得答案。 此信息不足以回答。

答案 4 :(得分:1)

它可以是Class.Enum.EnumType,也可以是Class.Class.Const

答案 5 :(得分:1)

如果你看一下Airplane类的定义,很容易发现。此外,selectedType的类型应该给你一个指示。如果您没有源代码,如果右键单击Airplane.Type.Passenger(例如)并选择“转到定义”,Visual Studio可以为您生成类大纲。此外,您可以使用Reflector之类的工具查看代码。

但是,它似乎是一个嵌套的枚举(最明显的选择):

class Airplane {
  public enum Type {
    Fighter,
    Passenger
  }
}

但它也可以是具有常量的嵌套类型:

class Airplane {
  public static class Type {
    public const string Fighter = "Fighter";
    public const string Passenger = "Passenger";
  }
}