代码:
public enum TestEmun
{
[Remark("AAA")]
aaa,
[Remark("BBB")]
bbb,
[Remark("CCC")]
ccc
}
public class RemarkAttribute : Attribute
{
private string m_remark;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="remark"></param>
public RemarkAttribute(string remark)
{
this.m_remark = remark;
}
/// <summary>
/// 属性
/// </summary>
public string Remark
{
get { return m_remark; }
set { m_remark = value; }
}
/// <summary>
/// 获取枚举的备注信息
/// </summary>
/// <param name="val">枚举值</param>
/// <returns></returns>
public static string GetEnumRemark(Enum val)
{
Type type = val.GetType();
FieldInfo fd = type.GetField(val.ToString());
if (fd == null)
return string.Empty;
object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false);
string name = string.Empty;
foreach (RemarkAttribute attr in attrs)
{
name = attr.Remark;
}
return name;
}
}
// <summary>
/// 枚举扩展类
/// </summary>
public static class EnumExtension
{
/// <summary>
/// 获取枚举的备注信息
/// </summary>
/// <param name="em"></param>
/// <returns></returns>
public static string GetRemark(this Enum val)
{
Type type = val.GetType();
FieldInfo fd = type.GetField(val.ToString());
if (fd == null)
return string.Empty;
object[] attrs = fd.GetCustomAttributes(typeof(RemarkAttribute), false);
string name = string.Empty;
foreach (RemarkAttribute attr in attrs)
{
name = attr.Remark;
}
return name;
}
}
注意:定义的枚举类一定要继承自attribute类,
不知道下面该写什么了,不写了。。。。。。
本文介绍了如何在C#中创建自定义注解,特别是针对枚举类型。通过定义`RemarkAttribute`类并使用它来为枚举值添加描述性注释,然后提供了一个扩展方法以便于获取这些注释。示例代码展示了如何定义枚举、自定义属性以及枚举的扩展方法来获取注释信息。
873

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



