在我们的程序中经常出现这样的代码:
//成员变量
public string Name; //类属性 private string name; public string Name { set { name = value; } get { return name; } }像上面这样的代码到底两者有什么不一样呢?对其他对象来说,这两者都是同样的访问,同样的赋值。一个是变量,一个是属性。
那么 为什么要这样做呢?
首先基于面向对象的原则来看,面向对象编程的目的是要坐到抽象、封装;在类中,变量是对类本人而言的,我们把它叫做域,它可以是public、private等;属性石类外部显示出来的特性,虽然变量可以为public,单这样不利于类的封装,因为外部使用者可以对类进行直接的修改。所以我们可以用属性,我们只是公开他们的属性,至于如何对其进行赋值(set)如何取值(get)都进行了封装,对于类外部来说这是不可见的,我们能使用它,单不能控制它,如何控制操作时类自身决定的,这就是它们原则上的区别。
总结一下几点:
1、属性是对字段的封装
2、属相可以控制读写,变量不可以
3、属性可以进行赋值操作,变量不可以
4、对一个对象进行数据绑定时,数据是可以正常绑定的,变量就不行。当需要将类
中的一个值设为public时,应该是使用属性而不是变量。
@符号的妙用
1:字符串转义符
“\”在c#中式特殊符号,表示转义字符,如果表示普通字符串“\” 则需要\\才可以,通过@符号,可以将“\”当普通字符使用。
string path="F:\\vs2008\\1.txt" ;
string path=@"F:\vs2008\1.txt"; 这个样子就可以了。 2:用@表示跨行字符串 3:保留关键字标示符 在C#规范中,@可以作为标示符(类名,变量名,方法名)的第一个字符,以允许c#中保留关键字作为自己定义的标示符。 如 public class @class