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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋健 中级黑马   /  2013-3-11 21:46  /  1497 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#面向对象为字段构建属性时,get,set关键字是什么意思,value又是哪里的值
例如:
class Person
    {
        string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
在调用时 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;
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
1、属性的设置是为了保护字段用的,
    get{return name}和set{name=value},属性的访问类型分为:只读、只写、既读还写三种。
     只读属性,只包含get访问器。
     只写属性,只包含set访问器。
     读写属性,包含get和set访问器。
get和set访问器的灵活运用,可以保障类中字段的安全。
   对设值的限制:1 写在get方法里 2 写在set方法里 3 写在构造函数里
2、get是获取值,set是设置/写入值

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
宋健 + 3
张文 + 1

查看全部评分

回复 使用道具 举报
value中储存用户赋过来的值,如下例,value中存的是“张三”
get和set方法是读、写值时使用,当对属性赋值时,调用set方法,读取时调用get方法
属性中只有get时,为只读属性,用户不能直接对此属性赋值;只有set是只写属性
  Person onePerson=new Person();
  onePerson.Name="张三"; //赋值,调用set方法,把“张三”赋给name
  Console.WriteLine(onePerson.Name); //取值,调用get,返回name

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

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