21
创建将T约束为枚举的泛型方法
我建立一个功能扩展Enum.Parse的概念, 如果找不到Enum值,则允许解析默认值 不区分大小写 所以我写了以下内容: public static T GetEnumFromString<T>(string value, T defaultValue) where T : Enum { if (string.IsNullOrEmpty(value)) return defaultValue; foreach (T item in Enum.GetValues(typeof(T))) { if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item; } return defaultValue; } 我收到错误约束不能是特殊类System.Enum。 足够公平,但是有没有允许通用枚举的变通办法,或者我将不得不模仿该Parse函数并将类型作为属性传递,这对代码强制了严格的装箱要求。 编辑谢谢所有下面的建议。 已经解决(我离开了循环以保持不区分大小写-解析XML时正在使用它) public static class EnumUtils { public static T ParseEnum<T>(string value, T defaultValue) …