深入浅出Attribute (上)——Attribute初体验

本文深入浅出地介绍了C#中的Attribute,揭示了Attribute作为"特性"的概念,区别于Property。通过实例展示了Attribute如何作为程序代码的一部分,存储在元数据中,用于在运行时提供额外信息,例如在测试中区分程序员的工作量和修复过bug的函数。文中还通过ConditionalAttribute的使用,说明了Attribute如何控制方法的执行。文章以一个富有戏剧性的超市购物场景引入,生动地吸引了读者的注意力。
摘要由CSDN通过智能技术生成

深入浅出Attribute

小序:

         注意:本次小序颇长而且没什么正事儿,建议大家直接跳到正文,以免浪费宝贵时间:)

 

         积水潭桥旁的物美大卖场有两层——B1B2B1卖电器和日用品(概括起来说就是那些不能吃的——猫粮除外),B2是卖食品的,又分为两个区,南区是卖零食的,北区是卖蔬菜水果生肉熟肉的。以前转的最多的是南区,购物车里大包小包一堆零食还要再抱上两大桶可乐,衣着整洁的时候偶尔还假装斯文给打扮入时的小MM让个路、挤个眉弄个眼儿什么的;现在基本上只在北区转了,购物车里全是折价蔬菜大米油盐,每天都是裤衩背心、趿拉着拖鞋,经常是跟退休的大妈们混战在一起扒拉架豆角或者擗菜帮……

         ~~~逛超市最麻烦的倒不是买东西,而是排大长队付款——尤其是周末:p

不过,本周末晚上我可是碰见一猛人,PLMM。她先是从北区后场启动,嘁哩喀喳装了一堆菜到称重处过秤,然后灵活地绕过干货区,然后在到达南北区的中线的时候来了个急停。左顾右盼几秒钟后,“啪、啪”装了两大包FB面之后便突然启动杀入了零食林立的南区中场——只见她矫健的身影在零食区的货架间穿插自如、大搞S形机动,桑巴之态如入无人之境,几乎overload的购物车在她脚下,不,是手中!左盘右带、就像魔术师手中的道具一样灵活。她打开一张纸,大概是要买的东西,从上到下扫描一遍后自信地点了下头——看来是要买的东西已经买齐了,然后眯起眼睛、远远地望了一眼收银台,脸上略过一丝不易察觉的、邪邪的笑……

看!她加速了,加速了!!她已经冲过了饮料区,两个顾客横在过道出口、封住了她前进的道路。只见她又是一个急停,把车以90度角向左一推,然后再以90度角向右一转——这是多么流畅的普加乔夫眼镜蛇机动!两个顾客还没有反应过来,她已经杀出了饮料区,直奔收银台……

离收银台不足十码了!眼看就有两个顾客要卡在她前面交费了!怎么办!怎么办?!

她先是利用自己的速度优势杀到较近的一个顾客身旁,轻挑车头,打算用假动作骗过这名顾客,让这名顾客迫于压力进入另一付费通道。看!她成功了!!而这时,另一名顾客马上就要进入交费通道了——刹那间,她做出了另人不可思议的动作!她先是把车往左一带,然后又往右一拨,双手突然发力脚下同时加速——人车分过!人车分过!!!哇噻!!她又成功了!!此时,她面前只有收银员了!!面对收银员她丝毫没有迟疑、没有犹豫、没有任何放慢速度的意思——伟大的意大利左后卫!!!胜利是属于你的!!!

~~~~~~~~~~~~~~

在警报响起的同时,收银员稳稳地将车抱入怀中!

冲撞收银员!超市管理员跑过来了,一边跑一边~~~好像是在掏牌儿~~~让我们看看他掏的是什么牌儿……哇哦!红牌,是红牌!!

两名保安走过来,准备把PLMM架出场外。超市管理员来到收银员旁边,察看收银员有没有受伤。

怎么回事?!场上一阵骚乱!一名保安倒在了地上,痛苦地捂着胸口在地上打滚!这到底是怎么回事?让我们看一下超市监控录像的慢动作回放……保安先是拉了一下MMT Shirt,被MM用手拨开,走了两步之后,MM突然冲回来用头狠狠地顶在保安的胸口!保安凌空翻转,重重摔在地上!——God!这到底是怎么回事?!保安到底对MM做了什么,或者是说了什么,以致MM出此狠招?!

……

正文:

         什么是AttributeAttribute是干什么使的?AttributeProperty到底有什么区别?……

长久以来,这些问题一直困扰着并不怎么广大的C#初学者。原因大概有两个,一是Attribute平时不怎么常用(没用惯怎么可能常用吗!)二是这个家伙不太好翻译——它与Property这个词意义相近,都有“属性”这个词条(而且在HTML语言中,Attribute也的确与C#面向对象概念中的Property意思一致),因此很多译者,特别是C#刚刚出来那阵子,拿捏不好应该怎么翻译,搞的C#初学者一遇到“属性”就发懵、一遇到“Attribute

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值