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

2025-04-27 18:11:44
推荐回答(4个)
回答1:

这是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="新值";(为该属性附新值)

回答2:

这个是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;

明白了么?

回答3:

get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性就是只读的。同样,只有set,属性就是只写的,当然只写的属性是没有任务意义的。假设类是一个银行,既能存钱也能取钱.
private m_money;
private class bank()
{
get { return m_money ;}
set { m_money = value ;}
}

m_money 就像银行里的自动存取款机,你看不见里面的money,但你能用set(存钱),用get(取钱)。m_money是一个私有字段,是分装在类中的,类以外的程序不能直接访问的,类的set 和get成员是外部程序访问类内部属性的唯一方法,就像你去银行取钱,你不能直接从银行的保险柜里拿到钱,而是银行营业人员把钱取出来给你的.

回答4:

get 只读属性
set 只写属性
用法:对变量进行封装,调用时候可以用方法来赋值!