例如,在 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)。不同之处在于选择的复杂程度。当它有点复杂时,将枚举用于简单的选择和静态字段。