这个功能实现起来其实也很简单,就是通过反射去读取 DescriptionAttribute 的 Description 属性的值,代码如下所示:
创新互联主营靖州网站建设的网络公司,主营网站建设方案,重庆APP软件开发,靖州h5微信小程序定制开发搭建,靖州网站营销推广欢迎靖州等地区企业咨询
/// summary
/// 返回枚举项的描述信息。
/// /summary
/// param name="value"要获取描述信息的枚举项。/param
/// returns枚举想的描述信息。/returns
public static string GetDescription(Enum value)
{
Type enumType = value.GetType();
// 获取枚举常数名称。
string name = Enum.GetName(enumType, value);
if (name != null)
{
// 获取枚举字段。
FieldInfo fieldInfo = enumType.GetField(name);
if (fieldInfo != null)
{
// 获取描述的属性。
DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
typeof(DescriptionAttribute), false) as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
}
return null;
}
这段代码还是很容易看懂的,这里取得枚举常数的名称使用的是 Enum.GetName() 而不是 ToString(),因为前者更快,而且对于不是枚举常数的值会返回 null,不用进行额外的反射。
当然,这段代码仅是一个简单的示例,接下来会进行更详细的分析。
当然可以,
A已知dll的路径和文件名,但不知里面的类名,只知道里面必定有某类实现了接口I
可以让B设计一个方法,返回这个接口I
这样A的程序里面通过调用B的这个方法,来得到自己需要的接口实现类对象
上级目录不可以,但是为了保证程序路径改变,引用不会被破坏。可以有几个方法:
1.将DLL文件放在程序同级目录
2.将DLL文件放在程序子目录
3.将DLL文件放在System32目录下(系统目录,可以直接引用DLL)
4.可以将DLL文件打包成资源文件,融合到EXE程序中,每次执行判断同级目录是否有DLL文件,不存在,释放资源文件。
public Color col(string colorName)
{
Type colorType = typeof(Color);
PropertyInfo info = colorType.GetProperty(colorName, BindingFlags.Public | BindingFlags.Static);
if (infos == null)
{
//throw Exception
}
return(Color)info.GetValue(null, null);
}
是这个意思么?输入“Red”, 返回Color.Red 区分大小写
用标签,设一个背景图片就是了,背景图片用bmp画图就行。其实你完全可以用更精美的图片。效果特好!
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款