C#Attribute属性标签Demo

<p>对于[]这个方括号始终很好奇这是一个何方妖物,查了一下MSDN顿悟,特此写一些代码记录一下</p>
<p>首先<span id="nsrTitle">Attribute是一个类,该类必须继承自</span><span id="nsrTitle">Attribute并且命名规则也要用</span><span id="nsrTitle">Attribute做后缀,下面我来写几行代码</span></p>
<p><span>1)新建一个类DeveloperAttribute</span></p>
<p><span>using System;<br>using System.Collections.Generic;<br>using System.Linq;<br>using System.Text;<br>using System.Drawing.Design;<br><br>namespace WindowsFormsApplication3<br>{<br> [AttributeUsage(AttributeTargets.All)]<br> public class DeveloperAttribute: Attribute<br> {<br> private string name;<br> private string level;<br> private bool reviewed;<br><br> public DeveloperAttribute(string name, string level)<br> {<br> this.name = name;<br> this.level = level;<br> this.reviewed = false;<br> }<br><br> public virtual string Name { get { return name; } }<br> public virtual string Level<br> { get { return level; } }<br> public virtual bool Reviewed { get { return reviewed; }<br> set { reviewed = value; }<br> }<br> }<br>}</span></p>
<p><span>2)新建UserInfo类,并在其上添加 [Developer("zhangsan","5",Reviewed=true)]标签</span></p>
<p><span>using System;<br>using System.Collections.Generic;<br>using System.Linq;<br>using System.Text;<br>using System.Reflection;<br><br>namespace WindowsFormsApplication3<br>{<br> [Developer("zhangsan","5",Reviewed=true)]<br> public class UserInfo<br> {<br> public UserInfo()<br> {<br> System.Reflection.MemberInfo info = typeof(UserInfo);<br> DeveloperAttribute att =<br> (DeveloperAttribute)Attribute.GetCustomAttribute(info, typeof(DeveloperAttribute));<br> if (att != null)<br> {<br> this.UserName = att.Name;<br> this.Level = att.Level;<br> this.IsChild = att.Reviewed;<br> }<br> }<br> private string _name;<br> public string UserName {<br> set { _name = value; }<br> get { return _name; }<br> }<br> public string Level { set; get; }<br> public bool IsChild { set; get; }<br><br> }<br>}<br>3)</span></p>
<p><span>调用以上代码</span></p>
<p><span>UserInfo u = new UserInfo();<br>this.label1.Text = string.Format("Name:{0},Level:{1},IsCHild:{2}", u.UserName, u.Level, u.IsChild.ToString());</span></p>
<p><span>4)注释掉</span><span> [Developer("zhangsan","5",Reviewed=true)]这一行重新调用</span></p>
<p><span>^_^结果出来了<br></span></p>
<p><span><br></span></p>
<p><span><br></span></p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值