開発言語:C#
C#の基本構文でいまいち呑み込めなかった部分について
わからないなりに解説をしようと思います。
~良くわかっていない人による解説~
■列挙型とは (enum)
特定の値しか取らないようなものに対して使用します。
たとえば曜日だったら 月~日までの7つのみになります。
この曜日を例に取り上げていこうと思います。
■基本構文
【定義の仕方】
列挙型の宣言はenumをはじめに記述し、つづいて列挙型の名前を記述します。
-------------------------------------------------
enum 列挙型名
{
メンバー1, メンバー2, …, メンバーn ←列挙定数
}
-------------------------------------------------
例1)
------------------------------------------------- enum Week { Sun, Mon, Tue, Wed, Thu, Fri, Sat } -------------------------------------------------そしてそれぞれの識別子には0から順番に1ずつ増える整数値が割り当てられます。
Sun:0
Mon:1
Tue:2
:
Sun:6
例2)
------------------------------------------------- enum Week { Sun, Mon=100, Tue, Wed, Thu, Fri=200, Sat } -------------------------------------------------もし任意の値を代入すると、そこから1ずつ増加します
Sun:0
Mon:100
Tue:101
Wed:102
Thu:103
Fri:200
Sat:201
例3)
列挙要素の基になる既定の型はintですが、
Int型以外で整数値を使いたい場合は以下ように記述します。
------------------------------------------------- enum Week : byte { Sun =1 ,Mon =2 ,Tue =3 ,Wed =4 ,Thu =5 ,Fri =6 ,Sat =7 } -------------------------------------------------他にはこんな型が使用できます。
byte、sbyte、short、ushort、int、uint、long、ulong
【利用する方法】
識別子を参照する時は以下のように記述します
----------------------------
列挙型名.メンバー名
----------------------------
例4)
using System; class Sample { protected enum Week : int { Sun =1 ,Mon =20 ,Tue =30 ,Wed =40 ,Thu =50 ,Fri =60 ,Sat =70 } ////// 日本語の曜日をただ返すプログラム /// protected void SampleProgram(Week[] _day){ for (int i = 0; i < _day.Length; i++) { switch (_day[i]) { case Week.Sun: Console.Write("日曜"); break; case Week.Mon: Console.Write("月曜"); break; case Week.Tue: Console.Write("火曜"); break; case Week.Wed: Console.Write("水曜"); break; case Week.Thu: Console.Write("木曜"); break; case Week.Fri: Console.Write("金曜"); break; case Week.Sat: Console.Write("土曜"); break; } } } static void Main() { Week[] day = new Week[] { Week.Mon, Week.Tue, Week.Wed, Week.Thu, Week.Fri, Week.Sat, Week.Sun }; SampleProgram(day); } }
結果:月曜火曜水曜木曜金曜土曜日曜
すごく微妙なサンプルになったと思いました。
■ちなみに整数値の方を使用したいときは、
以下のように型変換すればOKです。
----------------------------
(整数型)列挙型名.メンバー名
----------------------------
■その他こわざ
参考になった応用の例です。
・enumの値を任意の文字列に変換する
・数値がenumで定義済みがどうかチェックする
・enumの値を列挙する
http://qiita.com/hugo-sb/items/38fe86a09e8e0865d471
0 コメント:
コメントを投稿