Класс в классе?или что-то другое - PullRequest
0 голосов
/ 04 февраля 2011

Мой учитель дал мне эту небольшую часть кода для этой недели, чтобы помочь, и, к сожалению, это немного помогает, но просто недостаточно. В контексте я в "selectedType" я не уверен, и это не то, почему я здесь. Я здесь, потому что хочу знать, может ли кто-нибудь объяснить, чем может быть «Самолет. Тип. Истребитель». Самолет - это класс, связанный с этим. Но я не уверен, является ли Type другим классом, который должен быть внутри Самолета или нет.

Мысли

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 ]

4 голосов
/ 04 февраля 2011

Ну, мы можем только догадываться здесь.Я предполагаю, что Airplane - это свойство текущего класса, а Airplane.Type - это перечисление со значениями, такими как FighterJet и Passenger.

.комментарии, это хороший шанс, что это внутреннее перечисление.

2 голосов
/ 04 февраля 2011
public class Airplane
{
    public enum Type
    {
        Fighter,
        Passenger
    }
}
1 голос
/ 04 февраля 2011

Легко узнать, если вы посмотрите на определение класса Airplane.Кроме того, тип selectedType должен дать вам указание.Если у вас нет исходного кода, Visual Studio может сгенерировать схему класса для вас, если вы щелкните правой кнопкой мыши Airplane.Type.Passenger (например) и выберите «Перейти к определению».Кроме того, вы можете использовать инструмент типа Reflector для просмотра кода.

Но, похоже, это вложенное перечисление (наиболее очевидный выбор):

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

Но это также может быть вложенный тип с константами:

class Airplane {
  public static class Type {
    public const string Fighter = "Fighter";
    public const string Passenger = "Passenger";
  }
}
1 голос
/ 04 февраля 2011

Это может быть Class.Enum.EnumType или Class.Class.Const

1 голос
/ 04 февраля 2011

Вам нужно написать определения самолета здесь, чтобы получить ответ. Этой информации недостаточно для ответа.

1 голос
/ 04 февраля 2011

Похоже, что это, вероятно, enum

...