这个见仁见智,众说纷纭,看你自己怎堪了, 不过属性的一个简单的使用就是在设置或获取的过程成,可以自动调用其他的方法。public PropertyTest { public string mP1;public string p1 get { // do someths here before get_P1() method. return mP1; }; set { // do someths here before set_P1() method. mP1 = value; }; }其实在内部是自动吧每个属性前加上 get_**** set_**** 的,实际上也是方法的实现而已。
private int id;public int Id { get { return id; } set { id = value; } }
我要是只读或只写,我可以写只返回值或只能修改不知道结果的方法不就好了!
问题就在于get,set块所有功能都能由方法实现,为什么微软要用这两个来代替方法?只为标示于java的不同吗?
public string name
{
get{return name;}
set{name=value;}
}
这样看起来美观~ 程序的可读性好,结构也清晰,它有保护数据的作用再次当我们需要它的时候可以直接调用就行了,而两个public需要调用两次,额外给程序增加了负担 写一个两个还好说写的多了不仅程序会混乱,恐怕过一些时间自己再拿来看都不知道写的是什么了,最重要的一点是:这是面向对像的思想!!
这点在MDSN的很多文档中都有一些体现,你可以仔细观察一下看。
当然如果你一定要说直接写成方法可读性会更好,那也没办法,这是个见仁见智的问题。但别忘了.NET是谁设计的。
是Anders Hejlsberg。这家伙在设计Delphi的时候就这么干了。这并不是.NET中才有的新玩艺儿。
set写入权限,get读取权限
不过属性的一个简单的使用就是在设置或获取的过程成,可以自动调用其他的方法。public PropertyTest
{
public string mP1;public string p1
get {
// do someths here before get_P1() method.
return mP1;
};
set
{
// do someths here before set_P1() method.
mP1 = value;
};
}其实在内部是自动吧每个属性前加上 get_**** set_**** 的,实际上也是方法的实现而已。
private int id;public int Id
{
get { return id; }
set { id = value; }
}