如何判断对象是否为枚举?

Aar*_*ron 2 c# silverlight enums ivalueconverter

我不是C#向导,但必须有一个简单的解决方案.

我有IValueConverter一个DataTemplate.转换器将用于控件,其数据绑定到类型为的对象enum:public enum ContentTypes.我想编写一个通用的转换器,它可以接受任何一个enum,然后用它做一些事情,但是当下面的转换器确实是对象参数的类型ContentTypes而不是Enum.

Convert方法:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
   Type valueType = value.GetType();    // <-- evaluates to `ContentTypes`. How can I just see if it's an enum, or Enum? 

   if (value.GetType() == typeof(Enum))
   {
       // Do something .... 
   }

   return null;
}
Run Code Online (Sandbox Code Playgroud)

那么,是否有可能采用一个未知类型的对象并确定它是否是一个enum并将其转换为这样的枚举,一般来说呢?我遗漏了一些基本的东西.

SLa*_*aks 9

你正在寻找这个Type.IsEnum属性,就是这样.