開発言語: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 コメント:
コメントを投稿