博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】C# GET 和 SET作用
阅读量:6657 次
发布时间:2019-06-25

本文共 1426 字,大约阅读时间需要 4 分钟。

http://www.cnblogs.com/yinxiangpei/articles/2357091.html

C#中get和SET,看来看去还是看不懂,通俗一点解释一下,用了有什么好处,不用会怎么样

如果你这样写是没有什么不一样的. 
private int __Old; 
public int Old{ 
get{return __Old;} 
set{__Old = value;}
 
}

但是如果你这样写就不一样了. 

private int __Old; 
public int Old{ 
get{return __Old;} 
set{// 这里加入了验证代码 
if(value<0) 
throw new ArgumentOutException("value", "输入值不能小于0"); 
__Old = value; 
}

上面的例子说明属性中可以添加些代码进行处理. 也可以设置的访问的权限等.

在类中定义一个属性 
public class Student 
private string name 
public string Name 
set{name=value;}//这里是给私有属性name赋值 
get{return name;}//这里取出私有属性name的值 
c#在定义类时,通常要把类中声明的对象封装起来,使得外界不能访问这个属性。上述代码中如果去掉set部分,则外界只能读取name的值,如果去掉get部分,则只能给name赋值。这样就可以控制外界对私有属性name的访问权限了,这种写法是C#的一个特性

当然你也可以通过自己创建函数来对name进行取值和赋值,但这样就显得比较麻烦了。

属性与普通变量不同就在于, 普通变量就是放在屋子里的东西, 是什么样明明白白. 而属性则是在屋子的门口放了个守门人, 你拿东西放东西要经过他.

这个守门人就是属性访问器, 拿东西就是 get, 放东西就是 set. 怎么拿怎么放是它说了算, 虽然你觉得好像就是直接拿直接放差不多. 

GET SET 就是对外的接口 ,一般在实例中访问成员数据需要这个成员数据的访问方式为PUBLIC ,现在C#很高级了,GET 就是获取,SET 就是设置,但是它提供了跟好的收缩性,对GET 和SET 可以单独设置访问权限 比如你对某个成员数据只能读取或者只写,或者只有派生类可以访问等。。。 相对以前来说,没有属性访问器,需要通过函数来调用私有成员数据,属性提供了高效的访问模式和简单的书写。 
就是为了安全啊~~ 
字段是你具体要操作的数据所以他的值不能出错,可是你又不能避免用户犯错~~ 
为了安全就用属性来给字段赋值,因为 在set中你可以对数据的安全进行验证, 
get就更简单了验证完数据了就要把值给了字段所以要get 
set的中文意思是“设置”; 
get的中文意思是“获得”;

补充:

get 和 set 会在相应的时候自动调用 

主要是为了隐藏程序内的数据结构时用 
get是获取该属性的值, 
set设置该属性的值。 
在用set时有一个特殊的变量value 
就是设置属性时的值

value 隐式参数,用于设置访问器以及添加或移除事件处理程序。

对类的属性进行 设置 

比如用类名.属性=“”赋值 set作用 
变量=类名.属性 取值 get 作用

转载于:https://www.cnblogs.com/mimime/p/6241092.html

你可能感兴趣的文章
使用Spring配置数据源JdbcTemplate
查看>>
nginx中root和alias的区别
查看>>
JDBC学习笔记
查看>>
演示一个使用db vault进行安全控制的示例
查看>>
240. Search a 2D Matrix II - Medium
查看>>
痞子衡嵌入式:常用的数据差错控制技术(3)- 和校验(Checksum)
查看>>
psycopg2 (python与postgresql)
查看>>
(转载)IOS学习笔记15——SQLite数据库
查看>>
SQL Server 使用 Hierarchyid 操作层次结构数据
查看>>
深入理解OSGI:Java模块化之路
查看>>
android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?...
查看>>
《编写高质量代码:改善Python程序的91个建议》读后感
查看>>
快速入门系列--Log4net日志组件
查看>>
Quartz---------------->概述
查看>>
idea创建普通java项目以及maven创建项目过程(转)
查看>>
站立会议第五天
查看>>
策略模式
查看>>
maven项目在myeclipse中不出现Maven Dependencies 和maven标识的解决方法
查看>>
py递归
查看>>
配置https服务器系列之一:自制ca证书并配置到nodejs-express服务器
查看>>