C#中get和set的原理
来源:互联网 发布:大数据工程师是什么 编辑:程序博客网 时间:2024/05/02 13:24
1.为啥要使用get,set?
软件工程的思想是用户只要指定你去干什么就好了,而不用关心你是怎么干的。所以如果直接声明一个public的变量,就能够在类外对变量进行各种操作,从而影响了类内部对变量的操作。
public class A{ public int Age; //这是不好的,待会有程序员可能把-1赋给Age}
为了避免这样乱搞,Java推荐用户对变量使用getValue(),和setValue方法,而C#嘛,进行一点微创新啦,使用property的get,set对类内的属性进行封装。可以使用prop+tab的快捷键调出get,set
2. 一种写法:
public class A { private int age; public int Age { get { return age; } set { age = value; } } } static void Main(string[] args) { A a=new A(); a.Age = 3; Console.WriteLine(a.Age); }
这样类内只对age操作,类外只对Age操作,逻辑上是一个东西,这里的get{}实际上就是java中的getValue方法。
其实这只是一种编码风格,类内部的变量用小写,暴露的Property首字母大写,变量不能public
需要注意的是,age和Age仅仅是一种逻辑上的关系,Age虽然是public,但是set和get规定了Age是否能够在类外读取和修改
3.推荐写法
在.NET自己的代码中没有小写的变量,类内的变量一律使用属性即property表达。
修饰属性使用public或者protect,这样一种变量就只有一个名字了。
同理,public的变量使用set,get规定类外的读写权限。protect变量的set,get规定子类的读写权限。
如下为Form类的写法:
3.体现封装性-------进行判断
get,set不只是能够返回和设置变量的值,进行只读,只写,读写三种操作,要不然这也太挫了
public class A { private int age; public int Age { get { return age; } set { if(age>0) age = value; } } }这样就可以防止类外对age的不合法赋值啦,类内部的逻辑完全在类内部执行,体现了OO的思想
0 0
- C#中get和set的原理
- C#中 set 和 get 的用法
- C#中get 和 set 的用法
- C#中get和set
- C#中get和set
- C#中get和set
- C#中get和set
- C#中get和SET
- C#的get和set
- C#中get和set、get{}和set{}函数的用法
- C#中get和set访问器的解释
- C#中get和set访问器的解释
- C#中关于get和set的详细例子介绍
- c#中GET和SET的具体用法
- c#属性中get和set的作用
- C#中关于set和get方法的写法
- C#中get和set访问器
- C#中 get和set 基础知识巩固
- pom文件中<packaging>jar</packaging>的真实含义
- JS闭包
- Android WebView java和js互相调用
- Ubuntu 12.04下PHP环境的搭建(LAMP)
- linux下mysql对数据库表大小写敏感处理
- C#中get和set的原理
- OpenGL2.0同OpenGLES2.0差异
- Flex教程和JS教程
- mongodb 基本使用
- wince下sources\sources.cmn\Makefile.def的相关作用
- 谷歌在招什么样的人?
- 朴素贝叶斯分类器的应用
- 回调函数在非阻塞模式中的使用
- 提升基于英特尔® 架构的 Android* 模拟器的速度