たとえば、XNAフレームワークにはSpriteBatch
クラスがあります。このSpriteBatch.Begin()
メソッドは、次のようなパラメーターを受け入れます。
spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
同じ方法でパラメータを受け入れるクラスを作成するにはどうすればよいですか?
:を作成しEnum
ます
enum FooBarMode
{
FrontToBack,
BackToFront,
Whatever
}
そしてそれをパラメータとして使用します:
void DoSomething(FooBarMode mode)
{
switch (mode) // just as an example
{
case FooBarMode.FrontToBack:
Console.WriteLine("FrontToBack");
break;
case FooBarMode.BackToFront:
Console.WriteLine("BackToFront");
break;
case FooBarMode.Whatever:
Console.WriteLine("Whatever");
break;
default:
throw new ArgumentOutOfRangeException("mode");
}
}
パラメータタイプは、列挙型(SpriteSortMode)と静的フィールド(BlendState.AlphaBlend)です。違いは、選択がどれほど複雑かということです。少し複雑な場合は、単純な選択と静的フィールドに列挙型を使用します。