C#属性定义。GET与SET访问器是怎么一回事,

给我举个例子、从头到尾讲一遍。我看了陈广老师的视频教程。GET是读。SET是写。哎。咋就还是不明白。还是命名空间让我一次就明白了,。写吧*****************... 给我举个例子、从头到尾讲一遍。我看了陈广老师的视频教程。
GET是读。SET是写。哎。咋就还是不明白。还是命名空间让我一次就明白了,。
写吧
*********************************//我现在只有8分了。说得好。我再追加多分、
展开
 我来答
她是我的小太阳
高粉答主

推荐于2017-09-15 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8621万
展开全部
1.属性的声明
总的来说,只要注意属性声明或者在使用是的一些规定就可以了,还有最为重要的:属性的操作过程。
声明是用如下语法:

类型 属性名 {访问器声明}

注意:属性还可以跟方法一样有参数,当然限制的是,参数必须是值参数外,参数的列表的声明与方法的一样。
访问器包括包含get访问器和set访问器

2.get访问器
get访问器相当于一个无参数方法,该方法具有属性类型的返回值以及属性相同的修饰符,而执行get访问器就是相当于读取了字段的值。需要注意的是,在get访问器中,返回值作为属性值提供给调用表达式。
例如:

private int a ;
public int A
{
get{return a;}
}

注意:当引用属性时,除非该属性为赋值目标,否则将调用get访问器读取该属性的值。(在没看到上面这句话之前,也很疑惑,调用时怎么让对象知道是get呢,还是set呢?)

3.set访问器
set访问器相当于一个void方法,该方法具有单个属性类型的值参数,以及包含属性相同的修饰符。
在set访问器中,新的属性值通过set访问器的参数传递。值得注意的是,在通过新的属性值赋值给字段时,显示参数传递必须声明为与该属性相同的数据类型,当然也可以使用隐式参数,不加声明时,编译器将使用隐式参数Value来表示赋给属性的新值。set访问器隐式具有名为value的参数(value),此参数的类型是属性的类型。
例如:
private int a ;
public int A
{
set{a=value;}
}
属性按如下方式,根据所使用的访问器进行分类:
只带有get访问器的属性称为只读属性。无法对只读属性赋值。
只带有set访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。
同时带有get和set访问器的属性为读写属性!
注意:在属性声明时,get和set访问器都必须在属性体内部声明。
4.调用get访问器在概念上等效于读取字段的值。但是并不是单单被编写成只有返回存储在字段中的值,事实上可以通过访问多个字段的值来计算出用户所需要的值,然后作为返回值,返回调用的表达式。
例如:
private int a ;
private int b ;
public int AAA
{
get{return (a*b/10)}
}
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
百度网友32c6f24eeab
2009-07-28 · TA获得超过458个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:0
展开全部
我也是初学者。我用笨方法来理解的,你不要笑话。

我认为,set和get都是C#语言约定俗成的东西,是两个方法。两个什么样的方法呢?在赋值的时候,调用属性的set方法;在读取的时候,调用属性的get方法。这样。

正常变量是用自己的内存空间存取值,而属性只是将"存取"抽象化为方法,并没有实际的存取空间。

这有点像淘宝上的二道贩子。实际上他没有自己的货架和库存,只是低价买进再高价卖出(跑题了)

初学者的笨理解,不要笑话啊。呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yxz0539
推荐于2017-09-29 · TA获得超过1597个赞
知道大有可为答主
回答量:1759
采纳率:0%
帮助的人:1748万
展开全部
你可以把它当做是一种方法
比如
private int num = 3;
public int Num
{
get
{
return num;
}
set
{
num = value ;
}
}
当我们实例化这个对象时,如果对obj.Num赋值的话,会执行set里面的程序,如果取得它的值的话,比如int x= obj.Num 会执行 get里面的语句
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MagicMicky
2009-07-28 · TA获得超过507个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:213万
展开全部
最显而易见的属性读写是这样的:

读 name = a.name;
写 a.name = xxx;

但是,为了代码安全,有的属性设为private,不能直接读写,这时候就需要用get/set,变成这样了:

读 name = a.getName();
写 a.setName(xxx);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4ea68ce
2009-07-28
知道答主
回答量:8
采纳率:0%
帮助的人:6.6万
展开全部
避免了对字段的直接访问,可以在赋值时先进行判断,增加了安全性;我是这样理解的饿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式