A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© popoluno 中级黑马   /  2013-6-15 13:00  /  1849 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作。不设置只读只写属性。那这样是不是相当于什么都没做?以前写的C#程序都没对字段进行访问和设置也可以用。现在好像并不是那么回事。例如一个winform程序中combobox下拉列表菜单用一个类中定义的数据进行绑定的时候如果不设get,set属性绑定进去的是什么system......什么的。。并不是进行赋初值后的数据。设了以后就好了。但是我不懂,既然不设只读只写那要设get和set干吗?难道是说必须得有get属性用的时候才能访问到类中的字段吗?请详答get,set在对字段不设置访问和设置的时候,存在的意义。既自动属性的意义。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

2 个回复

正序浏览
个人理解
属性是为了保证相对应字段赋值与取值的正确性,我们通过属性,在get/set中对字段进行操作
set 赋值,相当于写入;get 取值 ,相当于读取
当get/set同时存在表示读写;
只有get表示只读,想关字段只能在实例初始化是进行赋值操作;
只有set表示只写,只能对其进行赋值,不能读取调用。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
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访问器,表明属性的值的读写都是允许的。










      









            




















回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马