EnumConverter 类

提供将 Enum 对象与其他各种表示形式相互转换的类型转换器。

**命名空间:**System.ComponentModel
**程序集:**System(在 system.dll 中)

语法

声明
Public Class EnumConverter
    Inherits TypeConverter
用法
Dim instance As EnumConverter
public class EnumConverter : TypeConverter
public ref class EnumConverter : public TypeConverter
public class EnumConverter extends TypeConverter
public class EnumConverter extends TypeConverter

备注

此转换器只可将枚举对象与字符串相互转换。EnumConverter 类提供 Comparer 属性以获取 IComparer 接口,该接口可用于对枚举值排序。默认情况下,枚举值按它们在文件中出现的顺序进行排序。

有关类型转换器的更多信息,请参见 TypeConverter 基类和 如何:实现类型转换器

提示

决不要创建 EnumConverter 的实例。而应调用 TypeDescriptor 类的 GetConverter 方法。有关更多信息,请参见 TypeConverter 基类中的示例。

应用于此类的 HostProtectionAttribute 属性 (Attribute) 具有以下 Resources 属性 (Property) 值:SharedStateHostProtectionAttribute 不影响桌面应用程序(这些应用程序通常通过双击图标、键入命令或在浏览器中输入 URL 来启动)。有关更多信息,请参见 HostProtectionAttribute 类或 SQL Server 编程和宿主保护属性

给继承者的说明 如果希望按不同顺序对值排序,请重写 Comparer 属性。

示例

下面的代码示例可将 Enum 类型的变量转换为字符串,并可将字符串转换为该类型的变量。此示例要求已声明被称为 ServersEnum,以及它具有以下成员:

Windows=1, Exchange=2, BizTalk=3
Dim myServer As Servers = Servers.Exchange
Dim myServerString As string = "BizTalk"
Console.WriteLine(TypeDescriptor.GetConverter(myServer).ConvertTo(myServer, GetType(String))) 
Console.WriteLine(TypeDescriptor.GetConverter(myServer).ConvertFrom(myServerString))    
            
Enum myServer= Servers.Exchange;
string myServerString = "BizTalk";
Console.WriteLine(TypeDescriptor.GetConverter(myServer).ConvertTo(myServer, typeof(string))); 
Console.WriteLine(TypeDescriptor.GetConverter(myServer).ConvertFrom(myServerString));    
// Requires public declaration of the following type.
// __value enum Servers {Windows=1, Exchange=2, BizTalk=3};
Servers myServer = Servers::Exchange;
String^ myServerString = "BizTalk";
Console::WriteLine( TypeDescriptor::GetConverter( myServer )->ConvertTo( myServer, String::typeid ) );
Console::WriteLine( TypeDescriptor::GetConverter( myServer )->ConvertFrom( myServerString ) );
Enum myServer = Servers.Exchange;
String myServerString = "BizTalk";
Console.WriteLine(TypeDescriptor.GetConverter(myServer).
    ConvertTo(myServer, String.class.ToType()));
Console.WriteLine(TypeDescriptor.GetConverter(myServer).
    ConvertFrom(myServerString));

继承层次结构

System.Object
   System.ComponentModel.TypeConverter
    System.ComponentModel.EnumConverter
       System.Drawing.FontConverter.FontUnitConverter

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

EnumConverter 成员
System.ComponentModel 命名空间