如何在c#中创建以常量作为参数的类?
例如,在XNA框架中有一个如何在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
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");
}
}