`
lovnet
  • 浏览: 6865902 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

深入浅出WPF——澄清Attribute与Property

阅读更多

……上文若干千字省略……

------------------------------------------------------

在这里,有必要把Attribute和Property这两个词仔细地辨别一下。
这两个词的混淆由来已久。混淆的主要原因就是大多数中文译本里既把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,这个类的类成员中有很多Property——显然Attribute只是用来影响类在程序中的用法而Property则对应着抽象对象身上的性状,它们根本不是一个层面上的东西。
习惯上,英文中把标签式语言中表示一个标签特征的“名称-值”对称为Attribute。如果恰好我们又是用一种标签语言在进行面向对象编程,这时候两个概念就有可能混淆在一起了。实际上,使用能够进行面向对象编程的标签式语言只是把标签与对象做了一个映射,同时把标签的Attribute与对象的Property也做了一个映射——针对标签,我们还是叫Attribute,针对对象,我们还是叫Property,仍然不是一个层面上的东西。而且,标签的Attribute与对象的Property也不是完全映射的,往往是一个标签所具有的Attribute多于它所代表的对象的Property。
因为XAML是用来在UI上绘制控件的,而控件本身就是面向对象抽象的产物,所以XAML标签的Attribute里有就一大部分是与控件对象的Property互相对应的。当然,这还意味着XAML标签还有一些属性并不对应控件对象的Property。
---------------------------------------------------

TO BE CONTINUE...

分享到:
评论

相关推荐

    深入浅出WPF-刘铁猛-MVVM视频源代码,MVVM入门与提高视频对应的源代码

    **深入浅出WPF——MVVM模式解析** 在软件开发领域,Windows Presentation Foundation(WPF)是Microsoft推出的一种用于构建Windows桌面应用程序的技术,它提供了丰富的用户界面和图形渲染能力。而MVVM(Model-View-...

    《深入浅出 WPF》 完整目录版

    《深入浅出 WPF》 完整目录版是一本非常好动书,并且做了完整目录

    WPF深入浅出书上全部实例源码,非常详细

    **深入浅出WPF:全书实例源码详解** Windows Presentation Foundation(WPF),作为.NET Framework的一部分,是Microsoft推出的一种全新的用户界面框架,用于构建Windows桌面应用程序。它提供了丰富的图形层、数据...

    高清版WPF深入浅出.pdf

    本书《深入浅出WPF》是刘铁猛所著,目的是为了深入浅出地介绍WPF技术。作者利用丰富的开发经验和对技术的深刻理解,将WPF的复杂概念分解成浅显易懂的知识点。全书分为两个主要部分,第一部分主要介绍WPF开发的基础...

    WPF深入浅出高清PDF

    ### WPF深入浅出知识点详解 #### 一、引言:生产力与软件开发工具的进化 自古以来,生产工具的先进程度一直是衡量生产力水平的关键指标。随着科技的进步,计算机软件开发领域同样经历了一系列工具和技术的革新。从...

    WPF深入浅出电子书

    WPF深入浅出电子书,可以下载放到手机里看,非常的方便的。

    WPF深入浅出(高清.书签)

    《WPF深入浅出》是一本专注于Windows Presentation Foundation(WPF)技术的书籍,由国内作者撰写,确保了内容的准确性和本地化适应性。WPF是微软.NET Framework中的一个关键组件,它提供了构建富客户端应用程序的...

    WPF深入浅出_包含源代码

    **WPF 深入浅出 - 包含源代码** Windows Presentation Foundation(WPF),是微软.NET Framework的重要组成部分,它提供了一种全新的用户界面开发技术,用于构建丰富的、交互式的桌面应用程序。这本书《WPF深入浅出...

    wpf深入浅出资源文件,需要源码的可以给我@我

    **WPF 深入浅出:资源文件与源码详解** Windows Presentation Foundation(WPF)是Microsoft .NET Framework中的一个关键组件,用于构建富客户端应用程序。它提供了丰富的图形渲染能力、强大的数据绑定机制以及对...

    WPF深入浅出.zip

    在《WPF深入浅出》这本书中,你将会深入学习WPF的核心概念和技术,包括: 1. **XAML语言**:WPF的主要设计工具,XML-based的语言,用于描述UI元素和它们的属性。通过XAML,开发者可以以声明式的方式构建UI,使得...

    wpf 深入浅出 pdf

    ### WPF深入浅出知识点概览 #### 一、WPF简介 WPF(Windows Presentation Foundation)是微软推出的一种用于构建Windows客户端应用程序的框架。它提供了丰富的功能集,包括矢量图形支持、基于XAML的标记语言、数据...

    深入浅出WPF编程,供WPF初学者学习

    **深入浅出WPF编程** 是一个针对初学者的学习资源,旨在帮助新手快速掌握Windows Presentation Foundation(WPF)的核心概念和技术。WPF是.NET Framework的一部分,用于构建具有丰富图形界面的桌面应用程序。以下是...

    深入浅出PDF

    推荐给WPF零基础的人。

    《深入浅出WPF》免费下载(仅供学习)

    **深入浅出WPF**,这是一本专为学习Windows Presentation Foundation(WPF)技术而编写的书籍。WPF是Microsoft开发的一种用户界面框架,它作为.NET Framework的一部分,旨在为Windows应用程序提供丰富的图形用户界面...

    WPF深入浅出.pdf

    刘铁猛在其著作《深入浅出WPF》中,详细解析了WPF的各个方面,包括XAML、数据绑定、事件、命令、资源、模板、绘图及动画等,并结合自己多年的开发经验,通过具体的例子和源码分析,力求使读者能深入理解WPF的同时,...

    WPF深入浅出(书签版)

    内容高清,有书签

Global site tag (gtag.js) - Google Analytics