C#列挙(列挙型)の概要
列挙は、名前付き整数定数のセットです。列挙型が使用することです 列挙型の 宣言キーワードを。
C#の列挙は、値型です。言い換えると、列挙は、独自の値が含まれていると継承を継承または転送することはできません。
宣言 列挙型 変数を
一般的な構文の列挙型の宣言:
列挙<enum_name> { 列挙リスト}。
その中でも、
- enum_nameは、 列挙型の名前を指定しました。
- 列挙リストは 、識別子のカンマ区切りリストです。
各記号は、その前の符号付き整数値より大きい値の整数列挙リストを表します。デフォルトでは、列挙の最初のシンボルの値は、例えば0です。
列挙日{ 日、月、火、水、あなた、金、土};
例 次の例では、列挙の使用を示しています の例として 使用してシステムを、 公共の クラスEnumTest { 列挙日{日、月、火、水、木、金、土}; 静的な 無効メイン() { int型 X =(int型) Day.Sun; INT Y =(INT )Day.Fri; Console.WriteLineを(" サン= {0} " 、X); Console.WriteLineを(" 金= {0} " 、Y); } } ときに上記のコードコンパイルして実行するとき、それは次のような結果を生成します。 日曜 = 0 金の =を5。
列挙値や相関関係は明示的または暗黙的に割り当てられました。宣言列挙部材は、定数式イニシャライザを有する場合、(ベースの列挙型に暗黙的に変換可能)定数式の値は、メンバの列挙値に関連付けられています。列挙体の宣言がない初期化子を持っていない場合は、次のルールに従ってそれに関連する値を暗黙的に設定します。
列挙部材が列挙型で宣言された第一の列挙メンバーである場合、その値はゼロです。そうでなければ、列挙体の値は、(テキストの順序で)列挙の元メンバーを加えて得られた対応する値によって関連付けられます。この値が表すことができる根本的なタイプの値の範囲内でなければならない増加、それ以外の場合、コンパイル時エラーが発生します。列挙型値約関連のメンバーは、ケースが割り当てられ、次の例を参照してください。
使用してシステムを、 名前空間のテスト { 公共 列挙日:UINTは // データ型が用意されていない場合、デフォルトはintで 、{月は= 1。 、火= 2、水= 3。 、木= 4。 、金= 5。 、土、日} クラスEnumType { パブリック 静的 ボイドメイン(文字列[]引数) { Console.WriteLineを(ChooseDay(Day.Sun)); Console.WriteLineを(ChooseDay(Day.Mon)); } 静的 文字列ChooseDay(日D) { 文字列の TMP = 文字列.Empty; スイッチ(D) { ケースDay.Mon: TMP = 文字列(.Format " 週のあなたの選択{0}日(月曜日)、仕事"、(UINT )D); BREAK ; ケースDay.Tue: TMP = 文字列 .Format(" 週のあなたの選択{0}日(すなわち火曜日)、仕事"、(UINT )D); BREAK ; ケースDay.Wed: TMP= 文字列 .Format(" 週のあなたの選択{0}日(すなわち水曜日)、仕事"、(UINT )D); BREAK ; ケースDay.Thu: TMP = 文字列 .Format(「あなたが最初の週を選択} {0日(すなわち木曜日)、仕事 "( UINT )D); BREAK ; ケースDay.Fri: TMP = 文字列 .Format(" あなたの選択} {0(すなわち、週の金曜日の日)、作業「(UINT )D); BREAK; ケースDay.Sat: TMP = ストリング .Format(" 週のお好み{0}日(すなわち、土)、休止"、(UINT )D); BREAK ; ケースDay.Sun: TMP = ストリング .Format (" あなたは週の{0}日(すなわち、日曜)、残りの部分を選択した"、(UINT ;)D) BREAK ; デフォルト: TMP = " 無効" ; BREAK ; } 戻りtmpが; } } } コードをコピー // Execation結果 7日目(すなわち日曜日)にお好みのを、週の残りの部分は あなたが週の最初の日(つまり月曜日)を選択し、作業 任意のキーを押して続行します...
Enumerationを呼び出し
パブリック 列挙CommunicationState { /// <まとめ> /// 位置状態 /// </要約> 不明= 0 、 /// <要約> /// ユーザのログインを待つ /// </要約> WaitforUser = 1 、 / // <まとめ> /// パスワードを入力するようにユーザを待つ /// </要約> WaitforPass = 2 、 /// <要約> /// ユーザの指示を待つ /// </要約> WaitforCmd = 3、 /// <要約> /// 接收数据中 /// </要約> 受容= 4 、 /// <要約> /// 断开连接 /// </要約> 切断= 5 }
プライベートCommunicationState m_ComState = CommunicationState.Unknown。
this.m_ComState = CommunicationState.WaitforUser。