如何在c#中创建一个以常量作为参数的类?

Mar*_*ger 2 .net c# oop

例如,在XNA框架中有一个SpriteBatchClass.该SpriteBatch.Begin()方法接受如下参数:

spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
Run Code Online (Sandbox Code Playgroud)

如何创建一个以相同方式接受参数的类?

Ada*_*dam 7

创建一个Enum:

enum FooBarMode
{
     FrontToBack,
     BackToFront,
     Whatever
}
Run Code Online (Sandbox Code Playgroud)

并将其用作参数:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)