【C#】列挙型(Enum)について
今回は列挙型(Enum)について記述します。
そもそも列挙型とは。。。
特定の値しかとらないものに対して使う型です。
例えば、曜日や年号などなど。。。
◆Enumで表現できそうなもの
お決まりのパターンやほぼ変わることのないものが適しています。
例えば以下のようなものです。
・年号(…、明治、大正、昭和、平成)
・都道府県(北海道、青森、…、沖縄)
・曜日(月、火、水、木、金、土、日)
・通貨(円、ドル、ユーロ…)
◆Enumに適さないもの
値が変動するものや情報が多いものは適していないと考えます。
例えば以下のようなものです。
・犬の種類 ・・・ 種類が多すぎるため。
・カレンダー(年月日) ・・・ データ量が膨大なため。
・ユーザー情報 ・・・ 頻繁に変わるため。
◆備考
「普通にint型でバァーっと書けばいいんじゃね?」という意見もあると思いますが、
・膨大なデータ量でなければenumの方が管理しやすい。
・enumを使用することで可読性を向上できる。
という考えからenumの方をお勧めします。
次に、実際にenumを使用し月(12カ月)を定義してみます。
using System; class Task_3 { public enum Month : int { January = 1, February = 2, March = 3, April = 4, May = 5, June = 6, July = 7, August = 8, September = 9, October = 10, November = 11, December = 12, } public static void Main() { string format = "{0, -10} … {1}月", line = "*=------------------=*"; Console.WriteLine(line); Console.WriteLine(format, "January", (int)Month.January); Console.WriteLine(format, "February", (int)Month.February); Console.WriteLine(format, "March", (int)Month.March); Console.WriteLine(format, "April", (int)Month.April); Console.WriteLine(format, "May", (int)Month.May); Console.WriteLine(format, "June", (int)Month.June); Console.WriteLine(format, "July", (int)Month.July); Console.WriteLine(format, "August", (int)Month.August); Console.WriteLine(format, "September", (int)Month.September); Console.WriteLine(format, "October", (int)Month.October); Console.WriteLine(format, "November", (int)Month.November); Console.WriteLine(format, "December", (int)Month.December); Console.WriteLine(line); } }
◆enumの実行結果
以上です。
この記事が誰かの役に立つことを祈ります。