A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© honeys天空s 中级黑马   /  2013-12-2 14:13  /  1329 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 honeys天空s 于 2013-12-3 12:59 编辑

property与attribute有什么区别?作用是什么?

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

3 个回复

倒序浏览
1、 property就是访问字段(成员变量,field)提供的一种方式(set/get) ,而attribute是都是继承自System.Attribute的一系列class,用来自定义属性;
2、前者被翻译为属性,后者是自定义属性;
3、前者叫:属性(类成员级的) 后者叫:定制特性(类级);
4、property是指类向外提供的数据区域。而attribute则是描述对象在编译时或运行时属性的;
5、一个是service的属性,而另一个是interface的。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
首先你解释下这两个单词的意思:

property  本身的,自然的

attribute 外界给于的属性

C#中的Property(自身属性)
属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。

与字段不同,属性不作为变量来分类。因此,不能将属性作为 ref(C# 参考) 参数或 out(C# 参考) 参数传递。

属性具有多种用法:它们可在允许更改前验证数据;它们可透明地公开某个类上的数据,该类的数据实际上是从其他源(例如数据库)检索到的;当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。

C#中Attribute(给予的属性)

属性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。属性与程序实体关联后,即可在运行时使用名为“反射”的技术查询属性。有关更多信息,请参见反射(C# 编程指南)。

属性以两种形式出现:

一种是在公共语言运行库 (CLR) 中定义的属性。

另一种是可以创建的用于向代码中添加附加信息的自定义属性。

对于使用关键字(如 public 和 private)的声明比较熟悉,这些关键字提供有关类成员的其他信息。另外,这些关键字通过描述类成员对其他类的可访问性来进一步定义类成员的行为。由于编译器被显式设计为识别预定义关键字,因此传统上您没有机会创建自己的关键字。但是,公共语言运行库允许您添加类似关键字的描述性声明(称为属性 (Attribute))来批注编程元素,如类型、字段、方法和属性 (Property)。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
property是属性,用于存取类的字段,attribute是特性,用来标识类,方法等的附加性质
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马