2011-02-04 11 views
0

私は、この週のラボで助けてくれた私の先生からこの少しのコードを与えられました。 "selectedType"の文脈では、私は確信していません。なぜそれが私がここにいるのではないのですか?私は誰かが "Airplane.Type.Fighter"が何であるかを説明できるかどうかを知りたいので、私はここにいる。 飛行機は、これに接続されたクラスです。しかし、タイプが飛行機の中にあるべきであるかどうかわからない。クラスのクラスですか?何か他のもの

思考?

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; 
    } 
+0

は私には列挙型またはconstのように見えます –

+0

これは内側のEnumです。この答えを見てください:http://stackoverflow.com/questions/980766/how-do-i-declare-a-nested-enum/980792#980792 – Sean

答えて

4

ここでしかわかりません。私の推測では、Airplaneは現在のクラスのプロパティであり、Airplane.TypeFighterJetPassengerのような値を持つenumerationです。

seanがコメントに指摘したように、それは内側の列挙である可能性が高いです。

+1

いいえ、「飛行機」は不動産ではなく、明らかにクラスです。しかしここでは、非専門家に質問をして「最高の」答えを選ぶという問題を見ています。 –

+0

それは非常によく財産かもしれません。それがクラスであることを示す唯一のものは「新しい飛行機」の部分ですが、このプロパティは飛行機とも呼ばれます。 – alexn

+0

いいえ、プロパティにすることはできません。そうであれば、case文では機能しません。 – Pedro

1

それはおそらく、あなたは答えを得るために、ここでは飛行機の定義を記述する必要がenum

1

だように見えます。 この情報は回答には不十分です。

1

それはClass.Enum.EnumType可能性や、それはそれはあなたがAirplaneクラスの定義を見れば見つけるのは簡単だ

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

をClass.Class.Constすることができます。また、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"; 
    } 
} 
関連する問題