Csharp新手请问为啥要get和set
发布网友
发布时间:2022-10-10 19:05
我来回答
共3个回答
热心网友
时间:2023-10-09 07:21
set和get用于private变量的封装,一般只用在封装里。封装的一个最主要的用途就在于:数据的安全性。若所有的属性都用public来修饰,在操作性上是可行的,但是这样的数据时非常不安全的。
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成员是外部程序访问类内部属性的唯一方法,就像你去银行取钱,你不能直接从银行的保险柜里拿到钱,而是银行营业人员把钱取出来给你的。
属性在调用者看来就像一个普通的变量,普通变量怎么用,它就怎么用,但作为类的设计者,你可以利用属性来隐藏你类中的一些字段,使外界只能通过属性来访问你的字段,你可以通过属性来*外界对你的字段的存取,就利用get,set,如果你想让用户随意存取你的字段,那么就实现set和get,如果只想让用户读取字段,就只实现get,若只想让用户写字段就只实现set,同时你还可以在set和get中对用户传递来的值进行一些验证工作,以确保你的字段将含有正确的值。
比如 private int a;
public int Index
{
get{ return a; }
set{ if
(value>0)
a=value;
else a=0; }
}
可以看出,get\set有一种函数的特征:
一则是隐藏组件或类内部的真实成员;
二是用来建立约束的,比如,实现“有我没你”这种约束;
三是用来响应属性变化事件,当属性变化时做某事,只要写在SET 方法里就行。
热心网友
时间:2023-10-09 07:22
get就是取值。
set就是赋值。
热心网友
时间:2023-10-09 07:22
刚刚答了这个问题,你看下
参考资料:http://zhidao.baidu.com/question/470868108.html?oldq=1&from=evaluateTo#reply-box-1175959935