zoukankan      html  css  js  c++  java
  • 【转】C# GET 和 SET作用

    http://www.cnblogs.com/yinxiangpei/articles/2357091.html

    C#中get和SET,看来看去还是看不懂,通俗一点解释一下,用了有什么好处,不用会怎么样
    如果你这样写是没有什么不一样的. 
    private int __Old; 
    public int Old{ 
    get{return __Old;} 
    set{__Old = value;}
     
    }

    但是如果你这样写就不一样了. 
    private int __Old; 
    public int Old{ 
    get{return __Old;} 
    set{// 这里加入了验证代码 
    if(value<0) 
    throw new ArgumentOutException("value", "输入值不能小于0"); 
    __Old = value; 
    }

    上面的例子说明属性中可以添加些代码进行处理. 也可以设置的访问的权限等.


    在类中定义一个属性 
    public class Student 

    private string name 
    public string Name 

    set{name=value;}//这里是给私有属性name赋值 
    get{return name;}//这里取出私有属性name的值 


    c#在定义类时,通常要把类中声明的对象封装起来,使得外界不能访问这个属性。上述代码中如果去掉set部分,则外界只能读取name的值,如果去掉get部分,则只能给name赋值。这样就可以控制外界对私有属性name的访问权限了,这种写法是C#的一个特性

    当然你也可以通过自己创建函数来对name进行取值和赋值,但这样就显得比较麻烦了。


    属性与普通变量不同就在于, 普通变量就是放在屋子里的东西, 是什么样明明白白. 而属性则是在屋子的门口放了个守门人, 你拿东西放东西要经过他.

    这个守门人就是属性访问器, 拿东西就是 get, 放东西就是 set. 怎么拿怎么放是它说了算, 虽然你觉得好像就是直接拿直接放差不多. 
    GET SET 就是对外的接口 ,一般在实例中访问成员数据需要这个成员数据的访问方式为PUBLIC ,现在C#很高级了,GET 就是获取,SET 就是设置,但是它提供了跟好的收缩性,对GET 和SET 可以单独设置访问权限 比如你对某个成员数据只能读取或者只写,或者只有派生类可以访问等。。。 相对以前来说,没有属性访问器,需要通过函数来调用私有成员数据,属性提供了高效的访问模式和简单的书写。 
    就是为了安全啊~~ 
    字段是你具体要操作的数据所以他的值不能出错,可是你又不能避免用户犯错~~ 
    为了安全就用属性来给字段赋值,因为 在set中你可以对数据的安全进行验证, 
    get就更简单了验证完数据了就要把值给了字段所以要get 
    set的中文意思是“设置”; 
    get的中文意思是“获得”;

    补充:

    get 和 set 会在相应的时候自动调用 
    主要是为了隐藏程序内的数据结构时用 
    get是获取该属性的值, 
    set设置该属性的值。 
    在用set时有一个特殊的变量value 
    就是设置属性时的值

    value 隐式参数,用于设置访问器以及添加或移除事件处理程序。

    对类的属性进行 设置 
    比如用类名.属性=“”赋值 set作用 
    变量=类名.属性 取值 get 作用

  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/mimime/p/6241092.html
Copyright © 2011-2022 走看看