C#属性定义。GET与SET访问器是怎么一回事,
给我举个例子、从头到尾讲一遍。我看了陈广老师的视频教程。GET是读。SET是写。哎。咋就还是不明白。还是命名空间让我一次就明白了,。写吧*****************...
给我举个例子、从头到尾讲一遍。我看了陈广老师的视频教程。
GET是读。SET是写。哎。咋就还是不明白。还是命名空间让我一次就明白了,。
写吧
*********************************//我现在只有8分了。说得好。我再追加多分、 展开
GET是读。SET是写。哎。咋就还是不明白。还是命名空间让我一次就明白了,。
写吧
*********************************//我现在只有8分了。说得好。我再追加多分、 展开
展开全部
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)}
}
总的来说,只要注意属性声明或者在使用是的一些规定就可以了,还有最为重要的:属性的操作过程。
声明是用如下语法:
类型 属性名 {访问器声明}
注意:属性还可以跟方法一样有参数,当然限制的是,参数必须是值参数外,参数的列表的声明与方法的一样。
访问器包括包含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 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
我也是初学者。我用笨方法来理解的,你不要笑话。
我认为,set和get都是C#语言约定俗成的东西,是两个方法。两个什么样的方法呢?在赋值的时候,调用属性的set方法;在读取的时候,调用属性的get方法。这样。
正常变量是用自己的内存空间存取值,而属性只是将"存取"抽象化为方法,并没有实际的存取空间。
这有点像淘宝上的二道贩子。实际上他没有自己的货架和库存,只是低价买进再高价卖出(跑题了)
初学者的笨理解,不要笑话啊。呵呵
我认为,set和get都是C#语言约定俗成的东西,是两个方法。两个什么样的方法呢?在赋值的时候,调用属性的set方法;在读取的时候,调用属性的get方法。这样。
正常变量是用自己的内存空间存取值,而属性只是将"存取"抽象化为方法,并没有实际的存取空间。
这有点像淘宝上的二道贩子。实际上他没有自己的货架和库存,只是低价买进再高价卖出(跑题了)
初学者的笨理解,不要笑话啊。呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以把它当做是一种方法
比如
private int num = 3;
public int Num
{
get
{
return num;
}
set
{
num = value ;
}
}
当我们实例化这个对象时,如果对obj.Num赋值的话,会执行set里面的程序,如果取得它的值的话,比如int x= obj.Num 会执行 get里面的语句
比如
private int num = 3;
public int Num
{
get
{
return num;
}
set
{
num = value ;
}
}
当我们实例化这个对象时,如果对obj.Num赋值的话,会执行set里面的程序,如果取得它的值的话,比如int x= obj.Num 会执行 get里面的语句
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最显而易见的属性读写是这样的:
读 name = a.name;
写 a.name = xxx;
但是,为了代码安全,有的属性设为private,不能直接读写,这时候就需要用get/set,变成这样了:
读 name = a.getName();
写 a.setName(xxx);
读 name = a.name;
写 a.name = xxx;
但是,为了代码安全,有的属性设为private,不能直接读写,这时候就需要用get/set,变成这样了:
读 name = a.getName();
写 a.setName(xxx);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
避免了对字段的直接访问,可以在赋值时先进行判断,增加了安全性;我是这样理解的饿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |