黑马程序员技术交流社区

标题: C#面向对象为字段构建属性的问题 [打印本页]

作者: 宋健    时间: 2013-3-11 21:46
标题: C#面向对象为字段构建属性的问题
C#面向对象为字段构建属性时,get,set关键字是什么意思,value又是哪里的值
例如:
class Person
    {
        string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }


作者: wjs5943283    时间: 2013-3-11 21:56
在调用时 Person p=new  Person();
p.Name="tom";这句话就是把"tom"通过set方法value="tom"赋值给 name。
当取值 就是调用 get方法,返回name的值。
比始 string myname=p.Name;就是通过 get 方法返回 name的值。
你就把 get  和  set 当成 两个方法就行了 :
string get(){
  return name;
}

void set(string value ){
  name=value;
}

作者: luxun1912    时间: 2013-3-11 22:17
1、属性的设置是为了保护字段用的,
    get{return name}和set{name=value},属性的访问类型分为:只读、只写、既读还写三种。
     只读属性,只包含get访问器。
     只写属性,只包含set访问器。
     读写属性,包含get和set访问器。
get和set访问器的灵活运用,可以保障类中字段的安全。
   对设值的限制:1 写在get方法里 2 写在set方法里 3 写在构造函数里
2、get是获取值,set是设置/写入值
作者: 熊薇    时间: 2013-3-12 09:34
value中储存用户赋过来的值,如下例,value中存的是“张三”
get和set方法是读、写值时使用,当对属性赋值时,调用set方法,读取时调用get方法
属性中只有get时,为只读属性,用户不能直接对此属性赋值;只有set是只写属性
  Person onePerson=new Person();
  onePerson.Name="张三"; //赋值,调用set方法,把“张三”赋给name
  Console.WriteLine(onePerson.Name); //取值,调用get,返回name


作者: 孔健    时间: 2013-3-12 11:08
get/set是两个访问器,value就是一个接收传过来值的一个"变量".
使用属性的目的是:保护私有的字段.
Person onePerson=new Person();
onePerson.Name="张三"; //赋值时,调用set访问器,此时把"张三"传给value,
Console.WriteLine(onePerson.Name); //输出时,调用get访问器,get再把name传回来.
可以在set访问器中写程序来检查传过来的值是否符合要求,从而起到保护字段的作用.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2