FontStyle属于枚举类型,如果用文本来记录,可以调用其ToString()方法,结果类似“Bold, Italic, Underline”。
但如何把这个字符串转换回FontStyle呢?其实这就是字符类型转换成枚举类型的问题。
我发现了两个方法,与大家分享。
方法一:
///对于枚举类型FontStyle的从字符到枚举转换的赋值操作 方法一 EnumConverter.ConvertFrom
string
myS
=
"
Bold,Italic,Underline
"
;
System.ComponentModel.EnumConverter myC
=
new
EnumConverter(
typeof
(System.Drawing.FontStyle)) ;
//用FontStyle类型创建EnumConverter对象,
注意typeof 转换为System.Type对象
System.Drawing.FontStyle
myFS
=
(System.Drawing.FontStyle)myC.ConvertFromString(myS); // 转换
public override object ConvertFrom(
ITypeDescriptorContext context, //类型
CultureInfo culture,
object value
);
将指定文本转换为对象。
public object ConvertFromString(string);
使用指定的上下文将给定的文本转换为对象。
public object ConvertFromString(ITypeDescriptorContext, string);
使用指定的上下文和区域性信息将给定的文本转换为对象。
public object ConvertFromString(ITypeDescriptorContext, CultureInfo, string);
方法二:
string
myS
=
"
Bold,Underline
"
;
System.Drawing.FontStyle myFS
=
(System.Drawing.FontStyle)Enum.Parse(
typeof
(System.Drawing.FontStyle),myS,
false
);
将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
public static object Parse(Type, string);
将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。一个参数指定该操作是否区分大小写。
public static object Parse(Type, string, bool); bool表示是否区分大小写

本文介绍了两种将字符串转换为FontStyle枚举类型的方法:使用EnumConverter.ConvertFrom和Enum.Parse。这两种方法均可实现从字符串到枚举类型的转换,适用于.NET框架下的C#编程。
331

被折叠的 条评论
为什么被折叠?



