黑马程序员技术交流社区
标题:
关于自动属性的问题
[打印本页]
作者:
popoluno
时间:
2013-6-15 13:00
标题:
关于自动属性的问题
C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作。不设置只读只写属性。那这样是不是相当于什么都没做?以前写的C#程序都没对字段进行访问和设置也可以用。现在好像并不是那么回事。例如一个winform程序中combobox下拉列表菜单用一个类中定义的数据进行绑定的时候如果不设get,set属性绑定进去的是什么system......什么的。。并不是进行赋初值后的数据。设了以后就好了。但是我不懂,既然不设只读只写那要设get和set干吗?难道是说必须得有get属性用的时候才能访问到类中的字段吗?请详答get,set在对字段不设置访问和设置的时候,存在的意义。既自动属性的意义。
作者:
许庭洲
时间:
2013-6-15 14:22
1. 在属性的访问声明中,对属性的值的操作用get关键字标出,对属性的值的写操作用set关键字标出;
2. 例如:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
using System
public class File
{
private string s_filename;
public string Filename
{
get
{
return s_filename;
}
set
{
if(s_filename!=value)
{
s_filename = value;
}
}
}
public
{
public static void Main()
{
File f = new File();
f.Filename = "myfile.txt";
string s= f.Filename;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3. 只有set访问器,表明属性的值只能进行设置不能读出;
4. 只有get访问器,表明属性的值只能读的,不能改写;
5. 同时具有 set访问器和get访问器,表明属性的值的读写都是允许的。
作者:
陈壹
时间:
2013-6-15 19:12
个人理解
属性是为了保证相对应字段赋值与取值的正确性,我们通过属性,在get/set中对字段进行操作
set 赋值,相当于写入;get 取值 ,相当于读取
当get/set同时存在表示读写;
只有get表示只读,想关字段只能在实例初始化是进行赋值操作;
只有set表示只写,只能对其进行赋值,不能读取调用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2