当前位置:编程学习 > C#/ASP.NET >>

关于C#中的属性和字段

C#语法中针对类中数据成员的访问介绍的属性和字段概念和C++相比,C++中只有属性(感觉相当于于C#中的字段),但是在使用C#过程中,假入我要写一个类,包含几个数据成员(即字段)但是为了让外边可以访问还需要写对应的属性出来,岂不是有点麻烦?看了很多属性和字段的比较,说明这种方式的优点。但是我还是不明白这种方式的好处。请哪位大虾给指点一二,在此谢过!O(∩_∩)O~
补充:请详细具体的回答,不要拷贝复制,最好给出代码样例解释使用属性和不使用属性的优缺点。敷衍了事的,非诚勿扰!

追问:没有了么?费那么大劲,引入属性,不会就这么点有点吧。

答案:举个例子吧

public class preson

{

public int age;

}

此时你可以给age赋任何值 例如-15、2000,但此类如果用来描述一个人 显然 这种复制时错误的

相反

public class person

{

private int age;

public int Age

{

get {return age;}

set {age =value;}

}

你可以在属性里面判断输入是否合法,既起到了对字段的保护作用,这就是封装的目的。

}

属性和字段可以访问对象中包含的数据。这个对象数据可以用于区分不同的对象,因为同一类的不同对象在属性和字段中存储了不同的值。

下面介绍另一个术语。包含在对象中的不同数据统称为对象的状态。

假定一个对象类表示一杯咖啡,叫做CupOfCoffee。在实例化这个类(即创建这个类的对象)时,必须提供对类有意义的状态。此时可以使用属性和字段,让代码能够通过该对象设置要使用的咖啡品牌,咖啡中是否加牛奶或方糖,咖啡是否即溶等。给定的咖啡杯对象也有一个指定的状态,例如Columbian filter coffee with milk and two sugars。

字段和属性都可以输入,所以可以把信息存储在字段和属性中,作为string变量、int变量等。但是,属性与字段是不同的,因为属性不能直接访问数据。对象能让用户不考虑数据和细节,不需要在属性中用一对一的方式表示。如果在CupOfCoffee实例中使用一个字段表示方糖的数量,用户就可以在该字段中放置自己喜欢的值,其取值范围仅由存储信息的类型来限制。例如,如果使用int来存储这个数据,用户就可以使用-2147483648~2147483647之间的任意值,显然,并不是所有的值都是有意义,尤其是负值,一些较大的正值将需要非常大的对象。但如果使用一个属性来表示,就可以限制这个值,例如为0~2之间的一个数字。

一般情况下,在访问状态时最好提供属性,而不是字段,因为这样可以更好地控制整个过程,这个选择不会影响使用对象实例的代码,因为使用属性和字段的语法是相同的。

属性可以是只读或只写的,而字段只能是可读可写的。

可以把那个 对象 当成参数来传递,这样在其他的模块就能够使用了.

其他的我就不清楚了,具体问题具体分析.有代码最好.

上一个:求C#矩阵相乘的例子
下一个:Web如何下载XML 文件 c#?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,