理解Attribute和Property的区别(XAML)

这两个词的混滑由来已久。混淆的主要原因就是大多数中文译本里既把 Attribute译为“属性”,也把 Property译为“属性”。其实,这两个词所表达的不是一个层面上的东西。

Property属于面向对象理论范畴。在使用面向对象思想编程的时候,常常需要对客观事物进行抽象,再把抽象出来的结果封装成类,类中用来表示事物状态的成员就是 Property。比如要写个模拟赛车的游戏,那么必不可少的就是对现实汽车的抽象。现实中的汽车身上会带有很多数据,但在游戏中可能只关心它的长度、宽度、高度、重量、速度等有限的几个数据,同时,还会把汽车“加速”、“减速”等一些行为也提取出来并用算法模拟,这个过程就是抽象(结果是Car这个类)。显然, Car.Length、Car.Height、Car.Speed等表达的是汽车当前处在一个什么状态,而Car. Accelerate()、Car. Break()表达的是汽车能做什么。因此,Car.Length、Car.Height、Car.Speed就是 Property的典型代表,将 Property译为“属性”也很贴切。总结一句话就是: Property(属性)是针对对象而言的。

Attribute则是编程语言文法层面的东西。比如有两个同类的语法元素A和B,为了表示A与B不完全相同或者A与B在用法上有些区别,这时候就要针对A和B加一些 Attribute。也就是说,Attribute只与语言层面上的东西相关,与抽象出来的对象没什么关系。因为 Attribute是为了表示“区分”的,所以把它译为“特征”。C#中的 Attribute就是这种应用的典型例子,我们可以为一个类添加 Attribute&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值