知识大全 .net程序员的盲点(二):两个属性引起的歧义

Posted 属性

篇首语:恢弘志士之气,不宜妄自菲薄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .net程序员的盲点(二):两个属性引起的歧义相关的知识,希望对你有一定的参考价值。

  两个 属性 引起的歧异 property和attribute的区别 这虽然没有 一个馒头引发的血案 那么严重 但是也足以成为 net程序员的技术盲点之二

  对于property和attribute这两个名词都叫 属性 的问题 来源于国内it书籍翻译界的疏忽

  其实它们来源于两个不同的领域 attribute属于OOA/OOD的概念 而property属于编程语言中的概念 下面我们来说明它们的异同

  Attribute

  Attributes是Microsoft NET Framework文件的元数据 可以用来向运行时描述你的代码 或者在程序运行的时候影响应用程序的行为

  Property

  属性是面向对象编程的基本概念 提供了对私有字段的访问封装 在C#中以get和set访问器方法实现对可读可写属性的操作 提供了安全和灵活的数据访问封装 关于属性的概念 不是本文的重点 而且相信大部分的技术人员应该对属性有清晰的概念 以下是简单的属性

  区别

  可以说两者没有可比性 只不过我们国家的语言特点才引起的歧异 其实只要记住Attributes是派生于System Attributes类之下 它的主要作用是描述 比如在某一个自定义控件中的 属性 就是指Attribute

  如

  [DllImport( User dll )]

  Attribute也有很多系统的 默认 属性 见下表

  预定义的属性 有效目标 说明

  AttributeUsage Class 指定另一个属性类的有效使用方式

  CLSCompliant 全部 指出程序元素是否与CLS兼容

  Conditional Method 指出如果没有定义相关联的字符串 编译器就可以忽略对这个方法的任何调用

  DllImport Method 指定包含外部方法的实现的DLL位置

  STAThread Method(Main) 指出程序的默认线程模型为STA

  MTAThread Method(Main) 指出程序的默认模型为多线程(MTA)

  Obsolete 除了Assembly Module Parameter和Return 将一个元素标示为不可用 通知用户此元素将被从未来的产品

  ParamArray Parameter 允许单个参数被隐式地当作params(数组)参数对待

  Serializable Class Struct enum delegate 指定这种类型的所有公共和私有字段可以被串行化

  NonSerialized Field 应用于被标示为可串行化的类的字段 指出这些字段将不可被串行化

  StructLayout Class struct 指定类或结构的数据布局的性质 比如Auto Explicit或sequential

  ThreadStatic Field(静态) 实现线程局部存储(TLS) 不能跨多个线程共享给定的静态字段 每个线程拥有这个静态字段的副本

  而Property是指编程过程中的字段 也即类的成员 如

  private int hour //定义私有变量表示 小时 外部是访问不到的

  public int Hour// 定义Hour程序接口

  

  set hour=value

  get return hour

cha138/Article/program/net/201311/11834

相关参考

知识大全 .Net技术开发中两个“属性”引起的歧异

.Net技术开发中两个“属性”引起的歧异  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于pr

知识大全 编写与.NET属性窗口交互的RAD组件(二)

编写与.NET属性窗口交互的RAD组件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  扩展

知识大全 ASP.NET程序中常用的三十三种代码二

ASP.NET程序中常用的三十三种代码二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!日期格式化 

知识大全 北京-环亚运商测试题 .net 程 序 员 初 步 测 试 题

可以使用任何你所熟悉的编程语言来实现以下算法题:一写一个函数将输入的任意正整数转换为它所对应的二进制编码并输出二有两个数值变量分别为a与b 试写算法实现a与b值的交换在程序中只能出现ab两个变量三有一

知识大全 asp.net中的validaterequest属性与安全性

  不知道大家之前有没有注意到这个属性这里我们来一起讨论一下这个属性的作用以及我们以后到底该怎样使用它!  我们先来了解一下这个属性:(注:本属性中是新增的!)  它所在的命名空间:SystemWeb

知识大全 ASP.NET中的DataGrid的属性

ASP.NET中的DataGrid的属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET中用healthMonitor属性用法

ASP.NET中用healthMonitor属性用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 AppSettings属性检索ASP.NET配置信息

AppSettings属性检索ASP.NET配置信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET中Page.Ispostback属性详解

ASP.NET中Page.Ispostback属性详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 编写与.NET属性窗口交互的RAD组件(三)

编写与.NET属性窗口交互的RAD组件(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  编写