列挙は、それが強く型付けされ、そして同様のクラスは、典型的には、定数のセットを表すために使用される、ユーザ定義の整数型です。(メンバーは漢字を使用することができます)
パブリック列挙性別:intは//のタイプを指定することができる:バイト、sbyte、ショート、USHORT、INT、UINTを、ロング、ULONG { M = 0、//整数の範囲を指定することができ、デフォルトは0単位で1であります増加 雌= 1 }
利点の列挙:
図1は、記述名の使用は、整数値を表すことができ列挙コードクリーナーを、可能にします。
図2は、列挙が容易コードは、維持するために、その指定された変数正規、所望の値を確保することができます。
入力を列挙して読み取るためのコードを容易にするために、3、。
1、簡単な列挙
- クラスの同じレベルで、宣言するenumキーワードを使用して列挙。列挙自体が修飾子があるかもしれませんが、列挙型のメンバーは常に公開され、あなたはアクセス修飾子を持つことはできません。列挙自体修飾子は唯一の公共および内部に使用することができます。
- 列挙型は、暗黙のうちにSystem.Enumから継承した値の種類があり、手動で変更することはできません。System.Enum自体はSystem.ValueTypeから継承された参照型です。
- 暗黙的な列挙は、密封された基本クラスのサブクラスとして許容されます。
- 列挙型列挙型のメンバーは静的であり、デフォルトのタイプはint32です。
- 各列挙型部材は、それに関連付けられた定数値を有します。この値は、基本となるデータ型列挙のタイプです。各列挙メンバーの定数値は、列挙の範囲の基礎となるデータ・タイプ内でなければなりません。あなたが明示的に基礎となるデータ型を指定しない場合、デフォルトのデータ型はintです。
- 列挙型のメンバーは同じにすることはできませんが、列挙値を同じにすることができます。
- 列挙最後のコンマや括弧の次のメンバーは、セミコロンを省略することができます
2、マーク列挙
トッププラス[System.Flags]特性の文で列挙をマークします。そして、列挙のサポートは、操作を組み合わせます。
このビット演算は、SQL文のサポートレベルの操作もあり、非常に便利です。言い換えれば、後のデータベースに保存された後、列挙操作の結果は、あなたはまた、要件に合わせて読み出すことができます。例えば:
「ハイハンサム」データベースに格納されたデータベースの値として格納され、それは整数5に記憶されています。
システム使用して; System.Collections.Genericを使用して、 System.Linqのを使用して、 System.Textのを使用して、 使用してSystem.Threading.Tasks; 名前空間enumApplication { クラスプログラム { 静的な無効メイン(文字列[] args) { 高VAR =人の男|。 。人々元帥; 101 001または100を割り当て//計算、結果は101である Console.WriteLineを( "列挙値と高いとハンサム:" +(INT)男性); IF((男性&人物高いです。 。)==高い人)// 101人 {// 001バイフェーズ高と、 :; Console.WriteLineを(「この人背の高い」)の結果が高い場合、あなたは男性が高い抗が含まれている// 001起動でき } 他の { Console.WriteLineを( "人:ロー"); } Console.ReadKey(); } [System.Flags] パブリック列挙人:INT { H = 1、001 // FOO = 2、@ 010 ハンサム= 4 / / 100 } } }
列挙。整数。文字列の間の変換
セックス列挙公共
{
男性、
女性
}
メインボイド静的(文字列[]引数)
{
Console.WriteLineを((INT)セックスF.); //変換列挙のint
Console.WriteLineを(性別女性.ToString()); //変換が挙げ文字列
//変換INT列挙;セックスsex1 =(性別)1
Console.WriteLineを(sex1.ToString());
セックスsex2 =(性別)がEnum.Parse(typeof演算(性別)、 "女性"); //文字列は、列挙に変換され
ます。Console.WriteLine(sex2.ToString());
Console.WriteLineを(Enum.GetName(typeof演算(セックス),. 1)); //列挙に対応する文字列に番号を変換し
}