public Color col(string colorName)
成都创新互联公司是一家以网站建设公司、网页设计、品牌设计、软件运维、营销推广、小程序App开发等移动开发为一体互联网公司。已累计为会所设计等众行业中小客户提供优质的互联网建站和软件开发服务。
{
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 区分大小写
Property用于标识一个类成员为属性而不是方法.属性可以被获取,属性在被获以的时候利用get句柄返回其值.属性可以被赋值,这个过程是由set句柄完成的.这两个句柄可以不同时存在.如果只有get而没有set,那属性就是只读的.如果只有set而没有get,那属性就是只写的.
就是定义了两个属性:s_name和s_sex
Overridable 表示这个属性可以被重载。
提供用来获取应用程序信息(如版本号、说明、加载的程序集等)的属性,可以删掉。
Visual Basic .NET支持动态属性,其动态属性储存在一个应用程序配置文件中,该文件在应用程序执行时将会被读到。使用动态属性可以在不重新编译应用程序的情况下改变一些属性值。你可以使用它们保存数据库连接字符串、应用程序日志信息或者服务器连接信息。
要看动态属性的例子,首先在Visual Basic中创建一个Windows应用程序。添加一个TextBox到默认窗体中;确认TextBox是被选中的,然后在属性窗口中定位Dynamic属性。
点击Advanced标签旁边的省略号按钮,打开一个对话框,该对话框中列出了TextBox所有的属性,选择Text属性,键映射框将会被激活。键映射决定了键储存在配置文件中的值。点击确定关闭对话框。
如控件自身无法设置滚动条,那就在父容器控件中(如FORM)使用滚动条解决问题。另外,也可将日期控件放在弹出窗口中,
这个功能实现起来其实也很简单,就是通过反射去读取 DescriptionAttribute 的 Description 属性的值,代码如下所示:
/// 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,不用进行额外的反射。
当然,这段代码仅是一个简单的示例,接下来会进行更详细的分析。