C#语法的问题 get set的用法

来源:百度知道 编辑:UC知道 时间:2024/09/20 12:23:49
public class Users
{
private int _userid;
private string _username;
private string _userpwd;
public int UserId
{
get { return this._userid; }
set { this._userid = value; }
}
public string UserName
{
get { return this._username; }
set { this._username = value; }
}
请高手讲解一下 get 和set的用法。
不要复制给我帮助中公式般回答 通俗的讲一下具体用法
顺便麻烦讲解一下 上面 get和set的语句

这是C#中的属性

public string UserName
{
get { return this._username; }
set { this._username = value; }
}

通俗来讲..get是获取值 set是设置值

比如这句:get { return this._username; }
如果调用这个get方法 就能获得方法return的 this._username(返回的值)
调用方法:Console.Write(对象.UserName);(输出该属性的值)

比如这句:set { this._username = value; }
如果调用这个set方法 就可以重新设置username的值 value就是你新设置的值
调用方法:对象.UserName="新值";(为该属性附新值)

这个是C#特有的语法 叫做属性
他的行为像方法 但是用法像字段

比如你定义一个public int index;的字段
访问这个字段你需要obj.index 而赋值的时候需要使用obj.index = 1;即可

那么定义一个属性的话 比如你上面的例子
则需要user.UserId 即可访问 而给它赋值的时候需要user.UserId = 1;这样

那么get set是干吗的呢? 当你使用user.UserId这个访问方式时 会调用UserId这个属性的get块 也就是你的return this._userid;
如果使用user.UserId = 1;赋值的时候,它会调用set块,而set块中的隐式参数value代表的就是1这个值,就是this._userid = value;

明白了么?

get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性就是只读的。同样,只有set,属性就是只写的,当然只写的属性是没有任务意义的。假设类是一个银行,既能存钱也能取钱.