属性中的访问器前面的修饰符有什么意义呢?就是get , set前面加public之类的修饰符我感觉不出他的意义,加在属性前还说的过去,加在访问器前就完全不知道什么意思了,求教???

解决方案 »

  1.   

    public str
    {
      protected set{}
      get{}
    }
    ????
    楼主是指这个嘛 当然有意义
    例如以上 ,说明只有本身或子类有赋值的权限,别人只有读取
      

  2.   

    不对不对,
    正常我们写属性都这么写对吧
    public   str 

        set{} 
        get{} 
    } 按c#理论,set和get默认都是private属性是吧。理论上只有在该类内部才能用get set对吧,实际上我们是到处都能用get set,楼上,你说是吗?
      

  3.   

    private说明该属性只能在本类中赋值和获取,protected 可是在本身或得子类中使用,public就是在其它类中也一样可以赋值获值了
      

  4.   

    不对不对, 
    正常我们写属性都这么写对吧 
    public       str   
    {   
            set{}   
            get{}   
    }   按c#理论,set和get默认都是private属性是吧。理论上只有在该类内部才能用get   set对吧,实际上我们是到处都能用get   set,楼上,你说是吗?
    ====
    胡说
      

  5.   

    public               str       
    {       
                    set{}       
                    get{}       
    }    
    请问,这里
    set{}       
    get{} 
    的默认修饰符是什么?
    我确实不知道,只是凭感觉默认不写的都是private 
      

  6.   

     private int A
    {
        get { return a; }
        set { a = value; }
    }
    已经证明了这里的get set都是private属性,因为这么写没错
    根据访问器的修饰符要比属性的修饰符小的原则,这里的get set必须是private
    而且证明一旦改成public或其他属性就报错 寂寞高手们,都跑到哪里去啦,来帮小弟看看啊
      

  7.   

    HDT的说法是对的.class Class1{
       private string _name;
       public string Name{
         protected set { _name = value; }
         get { return _name; }
       }
    }class Class2 :Class1{
      public void test(){
       this.Name = "asdasd";  //这里可以对name赋值
     }
    }//
    private void button1_Click(object sender, EventArgs e)
    {
        Class1 cc1 = new Class1();
        //cc1.Name = "aaa";  //这里赋值就不能通过编译.
        MessageBox.Show(cc1.Name);
    }我理解的是如果不加protected 修饰,get set的默认值应该和属性的主修饰符是一样的,而不是默认private.不过好像没法验证的样子.
      

  8.   

    有道理哦,兄弟,如果不加protected   修饰,get   set的默认值应该和属性的主修饰符是一样的我喜欢这句话,分数给你了,谁叫htd说我胡说,给他一分吧 ^_^
      

  9.   

    public Type Class
    {   
            set{}   
            get{}  
    }
    --------------------
    按照你的说法,去掉public,那你想把属性声名成什么类型呢?
    加public,在继承该类后,别人可以用它;
    加private,这样没作用,你声名这个属性给谁用的呢?
    加protected,见过,但不知道为什么用这个.比较少见.
    没有修饰符,系统会warning you