日期:2014-05-20  浏览次数:21284 次

请问一个属性的问题?
我在一个类中可以定义一个全程变量作为这个类的属性,可即使这个属性无需任何执行的程序体,我发现大家还是要把它写成Get,Set。那么他和你只定义一个全程变量有什么区别呢?

------解决方案--------------------
个人感觉只是为了按照面向对象的方式处理问题!
------解决方案--------------------
你可以自己定义读写啊
可以只读,只写,读写
------解决方案--------------------
如果只把一个变量公开,那么这个变量的赋值基本是控制不到的,可是如果用属性来实现的话,可以在Set方法里对这种操作进行控制,比如可以把变量的值规定在一个范围内等等.
------解决方案--------------------
如果是可以读写,应该没有什么区别。
------解决方案--------------------
private string a= " "
public string A
{
Get { retunr a;}
Set { a = value; }
}
在类中, 这样定义一个属性和把变量声明为pulic 你认为那一个好点?
------解决方案--------------------
不明白楼主要表达什么意思~
------解决方案--------------------
比如对于一个Student类.

NO.1
public class student
{
public string sno;
...
}

NO.2
public class student
{
private string sno;
public string Sno
{
get{return sno;}
set{sno=value;}
}
}

楼主是不是想问为什么用No.2,而不用No1?

简单来说,就是可以防止类的私有成员暴露给外界,安全,另外也更灵活,可以很方便的控制字段的读写..

MSDN说明如下:
属性提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称为“访问器”的特殊方法。这使得数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性。

------解决方案--------------------
习惯而已 只负责接分
------解决方案--------------------
http://blog.csdn.net/Knight94/archive/2006/06/04/772886.aspx