using System; using System.ComponentModel; using System.Reflection; // ReSharper disable All namespace RBFMorphing { [Serializable] public enum EnumMorphMethod { [Description("未知")] None = 0, [Description(@"零件")] Part = 1, [Description(@"单元集合")] ElementSet = 2, [Description(@"节点集合")] NodeSet = 3, [Description(@"面集合")] Surface = 4, [Description(@"导入节点")] ImportFile = 5, [Description(@"测试")] Dummy = 255, } public static class EnumExtensions { public static string Description(this Enum value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } string description = value.ToString(); FieldInfo fieldInfo = value.GetType().GetField(description); var attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (attributes != null && attributes.Length > 0) { description = attributes[0].Description; } return description; } } }