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 区分大小写
Property用于标识一个类成员为属性而不是方法.属性可以被获取,属性在被获以的时候利用get句柄返回其值.属性可以被赋值,这个过程是由set句柄完成的.这两个句柄可以不同时存在.如果只有get而没有set,那属性就是只读的.如果只有set而没有get,那属性就是只写的.
就是定义了两个属性:s_name和s_sex
Overridable 表示这个属性可以被重载.
提供用来获取应用程序信息(如版本号、说明、加载的程序集等)的属性,可以删掉.
Visual Basic .NET支持动态属性,其动态属性储存在一个应用程序配置文件中,该文件在应用程序执行时将会被读到.使用动态属性可以在不重新编译应用程序的情况下改变一些属性值.你可以使用它们保存数据库连接字符串、应用程序日志信息或者服务器连接信息.
要看动态属性的例子,首先在Visual Basic中创建一个Windows应用程序.添加一个TextBox到默认窗体中;确认TextBox是被选中的,然后在属性窗口中定位Dynamic属性.
如控件自身无法设置滚动条,那就在父容器控件中(如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,不用进行额外的反射.
当然,这段代码仅是一个简单的示例,此时此刻呢会进行更详细的分析.
以上就是土嘎嘎小编为大家整理的vb.net反射属性相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!