C# Convert.ChangeType如何从字符串转换为枚举 公共静态T转换(字符串值) { return(T)Convert.ChangeType(value,typeof(T)); } 公共枚举类别 { 空的,, 名称 城市 国家 } 类别类别=转换(“1”)//Name=1
当我调用C# Convert.ChangeType如何从字符串转换为枚举 公共静态T转换(字符串值) { return(T)Convert.ChangeType(value,typeof(T)); } 公共枚举类别 { 空的,, 名称 城市 国家 } 类别类别=转换(“1”)//Name=1,c#,enums,converter,C#,Enums,Converter,当我调用Convert.ChangeType时,系统抛出一个异常,即无法从字符串转换为类别。 如何进行转换? 也许我需要为我的类型实现任何转换器?为此使用方法 public static T Convert<T>(String value) { return (T)Convert.ChangeType(value, typeof(T)); } public enum Category { Empty, Name,
Convert.ChangeType
时,系统抛出一个异常,即无法从字符串转换为类别。
如何进行转换?
也许我需要为我的类型实现任何转换器?为此使用方法
public static T Convert<T>(String value)
{
return (T)Convert.ChangeType(value, typeof(T));
}
public enum Category
{
Empty,
Name,
City,
Country
}
Category cat=Convert<Category>("1");//Name=1
公共静态T转换(字符串值)
{
if(类型(T).IsEnum)
返回(T)Enum.Parse(typeof(T),value);
return(T)Convert.ChangeType(value,typeof(T));
}
.Net核心版本:
public static T Convert<T>(String value)
{
if (typeof(T).IsEnum)
return (T)Enum.Parse(typeof(T), value);
return (T)Convert.ChangeType(value, typeof(T));
}
公共静态T转换(字符串值)
{
if(typeof(T).GetTypeInfo().IsEnum)
返回(T)Enum.Parse(typeof(T),value);
return(T)System.Convert.ChangeType(value,typeof(T));
}
Enum.Parse(typeof(Category),“City”,true)代码>哇!这是一个很好的补充。(T)Enum.Parse(typeof(T),value,true);//忽略大小写:true。
(T)Enum.Parse(typeof(T),value,true)//忽略大小写:true。
public static T Convert<T>(string value)
{
if (typeof(T).GetTypeInfo().IsEnum)
return (T)Enum.Parse(typeof(T), value);
return (T)System.Convert.ChangeType(value, typeof(T));
}