下载此beplayapp体育下载

.Net基础之特性.doc


beplayapp体育下载分类:bepaly下载苹果 | 页数:约11页 举报非法beplayapp体育下载有奖
1 / 11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该beplayapp体育下载所得收入归上传者、原创者。
  • 3.下载的beplayapp体育下载,不会出现我们的网址水印。
1 / 11 下载此beplayapp体育下载
beplayapp体育下载列表 beplayapp体育下载介绍
.Net基础之特性
前言
我们初学C#的时候看到类上面一对中括号里面有个高亮了的关键字,不知道那是什么有什么用。想问人又不知道它叫什么。纠结的要命。其实,它就是特性。如:这就是我们今天要分析的主题。
特性是什么?
个人理5-12-20', 'zhaopei', '我只是测试自定义特性,不要报错哦,求求你了。')]public class TClass{ //................}
我们定义了特性,也使用了特性,然我们却不知道怎么看效果。我们想看到效果怎么办。可以使用反射(下篇博问继续分析反射)看看 TClass 类的元数据,如:static void Main(string[] args){ info = typeof(TClass); //通过反射得到TClass类的信息 TMessgAttribute hobbyAttr = (TMessgAttribute)(info, typeof(TMessgAttribute)); ('类名:{0}', ); ('创建时间:{0}', ); ('创建人:{0}', ); ('备注消息:{0}', ); ();}
打印效果如:什么是命名参数?
上面的自定义特性都是通过构造函数设置字段私有字段,然后通过只提供了get的属性来访问。那么可否直接在特性里面定义拥有get和set的属性吗?答案是肯定的。那怎么在使用特性的时候设置这个属性呢?我们接着往下看。
我们接着在自定义特性里面添加一个属性。
/// /// 修改时间/// public string modifyTime { get; set; }
使用自定义特性。
[TMessg('2015-12-20', 'zhaopei', '我只是测试自定义特性,不要报错哦,求求你了。', modifyTime = '2015-12-21')]public class TClass{ //................}
我们发现,直接在输入了构造函数之后接着设置属性就可以。(这就相当于可选参数了,属性当然可以随便你是否设置了。不过这里需要注意了,前面的参数一定要按照定义的特性构造函数的参数顺序)
这种参数,我们成为命名参数。
我们来继续要看看AttributeUsage(这个描述特性的特性–“元元数据”)
我们F12看看AttributeUsage的定义看上去,同样也只是普通的特性。实际上也只是个普通的特性。
我们来看看他的这几个属性是干嘛的。从最后一个开始看。
,我们在上面其实就已经看到并也已经使用了。我们设置的是可用于所有对象。AttributeTargets其实是个枚举,每个值对于一个类型对象。
你可以直接在 AttributeTargets F12进去: 我们看到了每个值代表可以用于所对于的对象类型。
(是一个布尔值):“如果该属性可由派生类和重写成员继承,则为 true,否则为 false。 默认值为 true”
如下,我们设置 Inherited = false 那么继承TClass的T2Class无法访问到TClass中设置的特性元数据。
namespace net{ [AttributeUsage(, Inherited = false)]// public class TMessgAttribute : Attribute// 。 { public TMessgAttribute() { } /// 创建时间 /// 创建人 public TMessgAttribute(string createTime, string createName, string mess) { = createName;

.Net基础之特性 来自beplayapp体育下载www.apt-nc.com转载请标明出处.

相关beplayapp体育下载 更多>>
非法内容举报中心
beplayapp体育下载信息