我需要在我的数据执行此操作很多次:对于C#4.0中昂贵的Enum.IsDefined(),有什么替代方法?
public void AddBehavior(BehaviorTypes type)
{
if (Enum.IsDefined(typeof(BehaviorTypes), type))
{
switch (type)
{
case BehaviorTypes.render:
return new renderable();
break;
}
}
也就是两个显式函数调用和对象装箱/拆箱操作!这个操作太昂贵了,只是为了检查一个枚举。有谁知道更便宜的选择?
'BehaviorTypes'是一个枚举,对吧?如果是这样,你可能意指'typeof(BehaviorTypes)'? – 2012-07-27 09:56:45
顺便说一句,IsDefined的实现比代码中的两次调用和装箱花费更多;)它被设计用来支持表示枚举值的字符串或int,所以它的功能相当多! – 2012-07-27 10:27:32
是的,这就是我的意思。我实际上试图摆脱这一点,只是使用BehaviorTypes作为类型,但没有。 – 2012-07-27 11:18:14