深入了解隐式属性和带实现值属性的区别(属性中get{},set{}访问器小解)
2013-05-22 17:53
330 查看
//在属性中定义 public string name{get;set;}//隐式属性 private string name; public string Name { get { return name; } set { name= value; } }
两者都是为了数据安全,封装字段用的。
正常来说,两者的使用是相同的,前一种的写法由编译器生成后一种的代码;
public string name{get;set;}这种写法是dotNet2.0以后才可以这样写,目的是减轻程序员的工作量,它的实现就是楼上讲的由编译器生成
当然如果简单get没写实现,set写了实现是不行的,但在前面加上抽象关键字abstract,对应的没写实现的就与抽象方法一样;
get和set还可以再加上public等访问级别。
区别是:
如果你要对属性做一些判断,如字符串不能为空,整数必须大于零等等这样的操作,那么你就没办法利用
public string name{get;set;}
这样的便利,必须老老实实写形如
public string Name { get { return name; } set { name= value; } }这样的代码
相关文章推荐
- 深入了解隐式属性和带实现值属性的区别(属性中get{},set{}访问器小解)
- PHP使用方法重载实现动态创建属性的get和set方法
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- JS 实现对象属性的get 和set方法
- PHP使用方法重载实现动态创建属性的get和set方法
- C/C++学习笔记1 - 深入了解scanf()/getchar(cin、cin.get()、cin.getline()、getline()、gets()、getchar()的区别 (OJ时候会用到)
- Android 属性动画 源码解析 深入了解其内部实现
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- 手把手用原生JS代码实现css属性的set和get
- C++实现C#的get,set属性操作
- 使用PHP魔术方法实现属性的set、get方法
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- Android 属性动画 源码解析 深入了解其内部实现
- Android 属性动画 源码解析 深入了解其内部实现
- Android 属性动画 源码解析 深入了解其内部实现
- __set() __get() _isset() __unset() 在__unset() 在类中没有事先声明和已经声明过的属性调用unset的区别
- C++中的property库的设计与实现过程(二)——如何为属性指定get_和set_函数?
- JQuery模拟五------实现属性set&get和CSS set&get