C#基础知识回顾-- 属性与字段
2013-07-13 11:13
381 查看
今天在公交车上,突然想属性和字段到底有什么区别?很多字段属性都存在 get{}和set{} 和普通的变量没什么区别(可读可写)
我就感觉属性就是给字段一个多的选择方式,有的字段是不允许更改的..
刚写程序时总觉得一个字段就能满足要求,何必要使用定义起来麻烦的属性
要get、set的去定义,代码量还大,真不知道他们的区别和优点
例:
myclass.A 和 myclass.Getval可能实现同样功能,为什么一定要用定义属性?
现在简单总结下属性较普通变量的优点:
1、数据安全
因为A是个公有变量,在类的外部可以任意更改,为了防止因用户任意更改,可用属性get、set来限制_B的的只读、只写或控制_B的最大或最小
引用一位老兄的简答:"其实自定义变量已经默认实现了属性,只是简单的读写而已,我们定义的属性要在读写的基础上加上更多限制,以后你学的多
了就会发现, 很多东西都是为了数据安全而加入的,说白了就是限制,例如接口,接口中的方法你必须(注意是必须,强制性的)要实现"
2、OOP和编程的一个原则就是数据封装,意味着我们不应该将字段的类型以公开的方式提供给外界 (其实属性就是对字段的封装)
3、其实单纯写程序一点不难,难得是如何设计程序,使代码简洁易读而效率又最高,
我就感觉属性就是给字段一个多的选择方式,有的字段是不允许更改的..
刚写程序时总觉得一个字段就能满足要求,何必要使用定义起来麻烦的属性
要get、set的去定义,代码量还大,真不知道他们的区别和优点
例:
public class myclass { public static string A private sting _B=""; public string Getval { get { retrun _B ;} set { _B = value; } } }
myclass.A 和 myclass.Getval可能实现同样功能,为什么一定要用定义属性?
现在简单总结下属性较普通变量的优点:
1、数据安全
因为A是个公有变量,在类的外部可以任意更改,为了防止因用户任意更改,可用属性get、set来限制_B的的只读、只写或控制_B的最大或最小
引用一位老兄的简答:"其实自定义变量已经默认实现了属性,只是简单的读写而已,我们定义的属性要在读写的基础上加上更多限制,以后你学的多
了就会发现, 很多东西都是为了数据安全而加入的,说白了就是限制,例如接口,接口中的方法你必须(注意是必须,强制性的)要实现"
2、OOP和编程的一个原则就是数据封装,意味着我们不应该将字段的类型以公开的方式提供给外界 (其实属性就是对字段的封装)
3、其实单纯写程序一点不难,难得是如何设计程序,使代码简洁易读而效率又最高,
相关文章推荐
- C#基础知识梳理系列三:C#类成员:常量、字段、属性
- c# 基础知识——属性、字段
- 基础知识系列☞C#中→属性和字段的区别
- C#基础知识梳理系列三:C#类成员:常量、字段、属性
- C#OOP基础之类,字段,属性和方法。
- C#基础知识回顾
- C#基础知识回顾-- 反射(1)
- C#基础知识回顾-- 反射(3)
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
- C#基础知识回顾--C#遍历enum类型、获取enum项个数
- C#基础知识回顾--串行化与反串行化
- C#基础知识回顾-- 反射(4)
- C#基础知识回顾--线程传参
- 黑马程序员 C#基础_属性与字段的区别
- 学习C#基础知识(八)——属性
- 基础知识回顾——属性
- 基础知识备忘——字段(Field),属性(Property),特性(Attribute)
- C#基础知识回顾--委托事件
- C#基础知识回顾
- C#基础知识回顾