我正在尝试为枚举添加新的/扩展方法,但扩展方法未显示在智能感知方法列表中。请帮助这是我的代码。
扩展名:
public static class EnumExtensions
{
public static string GetDescriptionAttr(this Enum value,string key)
{
var type = value.GetType();
var memInfo = type.GetMember(key);
var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute),
false);
var description = ((DescriptionAttribute)attributes[0]).Description;
return description;
}
}
试图调用其他类的结果(调用者和扩展都在同一个项目中)
最佳答案
扩展方法只能应用于实例
public static class EnumExtensions {
// This extension method requires "value" argument
// that should be an instance of Enum class
public static string GetDescriptionAttr(this Enum value, string key) {
...
}
}
...
public enum MyEnum {
One,
Two,
Three
}
Enum myEnum = MyEnum.One;
// You can call extension method on instance (myEnum) only
myEnum.GetDescriptionAttr("One");
关于c# - 枚举扩展方法未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189872/