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

如何在c#中创建以常量作为参数的类?,c#,.net,oop,C#,.net,Oop,例如,在XNA框架中有一个SpriteBatch类。SpriteBatch.Begin()方法接受如下参数: spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend); 如何创建以相同方式接受参数的类?创建: 并将其用作参数: void DoSomething(FooBarMode mode) { switch (mode) // just as an example { case

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

spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
如何创建以相同方式接受参数的类?

创建:

并将其用作参数:

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)。区别在于选择有多复杂。当简单的选择和静态字段稍微复杂时,使用枚举。

+1。是,并且(@MartijnBurger)VisualStudio为您创建switch语句。只需键入单词“switch”的开头(通常“sw”就足够了)并键入两次,在占位符中输入变量名,然后点击,您几乎可以免费获得一个漂亮的switch语句!
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");
    }
}