不要小看了get 与set
不知道大家以前是怎么使用实体中的get与set的.我先前是这样使用的.
先定义一个实体类.之后写与之相关的字段名称.最后匹配上与之相关的属性,控制字段的读写权限.
以前使用方式
代码1
public class product{private string code;private string commodity_Name;public string Code{get{ return code;}set{this.code=value;}}public string CommodityName{get{return commodity_Name;}set{this.commodity_Name = value;}}}
之后就可以再别的类中对product的属性进行取值和赋值了.这是我们常用的方式.
最近使用方式
而最近一直在使用的实体类中发现。有些只进行了字段的声明或只定义了属性,没有字段声明.
后来发现虽然类中没有声明字段,但是程序会默认生成一个字段:
Public String Name{Get;Set;
}
系统会生成默认字段string _name;
以上是背景。下面说说自身的使用
get与set使用的体会
在表的设计中我们使用不常用到表的关联,但是在实体对象中,我们是经常用到的却是实体关联。而关联的使用,它的控制就体现在 get与set中。
1使用get与set延迟加载
如:我们在上面的product类中关联了一个电商品清单集合类。
我们可以根据传入的code,实现动态的加载相关的产品清单。
代码2
private ProductElectricCollection _productElectric;public ProductElectricCollection ProductElectric{get{ //集合类初始为空if (_productElectric==null){//判断关联的主类是否为空,说明已经加载了,那么就需要根据code从数据库中加载需要的电商品集合数据if (this.code != null){_productElectric = AdapterElectric.Instance.Load(this.Code);}//若传入的code为空,则创建一个空的集合类else{_productElectric = new ProductElectricCollection();}}//已经存在该集合return _productElectric;}set{this._productElectric = value;}}
当我们加载完整个Product类的时候,引用类ProductElectric中是没有数据的
只有当我们使用引用类中的数据时,才会触发调用该电商的数据。
这时候的写法很如下
textBox1.Text=textBox1.Text = pc.ProductElectric[0].CommodityName.ToString();
这样就会调用实体类中预先写好的get方法。根据id加载我们我们电商集合订单。方法为以上的代码2。
该方法为一种简单的延迟加载方式。
2 使用get与set对其他字段赋值
不在自己的属性中对字段进行赋值
避免不必要经常调用,浪费资源
实例:
我们要算最小值,最小值需要使用到岗位经费,但是岗位经费需要根据职级加载。
1原来思路:定义岗位经费属性和字段。每次调用则获取员工职级进行加载。
就像上面的get方法一样,多次调用多次加载。
后来发现,计算费用需要多次调用该方法。实现是调用太频繁了,有些浪费资源。
2修改思路:岗位经费根据职级加载,只要职级不变,那么经费就是不会改变的。则在进行职级赋值时,进行经费加载,这样,后续调用直接获取字段中的值,就不必要在多次加载了。减少了资源的开销。同时也将开放的postExpenseAnnuallyAmount属性去掉了。也是一种不错的写法。
//员工岗位经费private decimal _postExpenseAnnuallyAmount;private string _vocationLevel;/// <summary>/// 员工职级/// </summary>public string VocationLevel{get{return this._vocationLevel;}set{//如果职级与获得的不相等,则进行经费加载。if (_vocationLevel != value && (value!="")){//根据职级加载岗位经费_vocationLevel = value;var expense = PostExpenseStandardAdapter.Instance.GetDataByVocationLevel(Convert.ToInt32(_vocationLevel), DateTime.Now.SimulateTime());if (expense != null){this._postExpenseAnnuallyAmount = expense.PostExpenseAnnuallyAmount;}}this._vocationLevel = value;}}/// <summary>/// 最小薪酬值/// 仅对宽带制有效,档级制时该值等于SalaryRealValue/// </summary>public Decimal MinSalaryValue{get{decimal salaryWithoutPostAmount = SalaryStandardValue * (1 - FloatSpan) - _postExpenseAnnuallyAmount;return IsNeedCityFactor ? salaryWithoutPostAmount * CityFactorValue :salaryWithoutPostAmount;}}
小结:
通过两个很小的实例,
1发现get与set的用法很灵活,变通的很,同时也是面向对象的一种体现。但是我们却很少这样使用。
2同时在定义实体类的时候也很少使用实体关联的方法,这样大大减少了面向对象的使用。
3定义属性和字段,并不是必要的,要根据实际情况来使用。小小的使用经验,希望对大家所有启发。实例源码下载
下篇介绍动态加载中的泛型委托参数使用
不要小看了get 与set相关推荐
- Python也有做大型游戏的潜力?原来我们小看了Python,无所不能!!
前言 在小编以前还没怎么接触很多编程语言时,都是认为游戏(端游,手游)都是用C做出来了!不知道大家有没有这么想过,反正我是这样的.后来慢慢接触多了,才知道并不是所有的都是这个样子的! 学习python ...
- 别小看不起眼的电阻,里面大有学问!
电阻在我们的工作中比较常见,别小看这不起眼的电阻,里面有很多学问. 贴片电阻(SMD Resistor),又名片式固定电阻器,是一种设计为贴片安装的电阻器. 这些SMD电阻器通常比传统的电阻器小得多, ...
- 别小看这不起眼的电阻,里面有很多学问!
关注.星标公众号,直达精彩内容 电阻在我们的工作中比较常见,别小看这不起眼的电阻,里面有很多学问. 贴片电阻(SMD Resistor),又名片式固定电阻器,是一种设计为贴片安装的电阻器. 这些SMD ...
- php多人点餐可以看到对方点的菜,千万不要小看你身边那个会点菜的人,因为
饭局上,你常常是负责点菜的那个人,还是只负责吃?拿起菜单点菜,你是很从容,还是不知道怎么点? 事实上,饭局上那个会点菜的人,千万不能小看. 某次随老板外出开会,跟去的几个人全是业务精英.晚上吃饭,都推 ...
- 别小看无人配送,长大了就是自动驾驶的最终实现。
别小看无人配送,长大了就是自动驾驶的最终实现. 自动驾驶正在驶入深水区.无数人正期盼着 L4 或者 L5 级别自动驾驶汽车的到来,但显然一切还需等待.今年 Uber 自动驾驶致死案更是给所有自动驾驶厂 ...
- 不要小看日本的AI公司
唐旭 夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI "超越Google." 有家日本AI创业公司,把这个当成奋斗目标挂在嘴边.而且还放言说,如果他们全速前进,肯定能干 ...
- 【毕业答辩】别小看毕业答辩PPT,它和你的论文一样重要
别小看毕业答辩PPT,它和你的论文一样重要 论文答辩是大学生踏入社会前最后一次终极大考,它除了考验学生对于专业知识的掌握程度以外,对于学生的应用创新能力也有一定要求. 如果希望顺利通过这个考验并且带着 ...
- 马小看前端( 在开发中遇到问题如何解决 )
马小看前端( 在开发中遇到问题如何解决 ) 今天我们来说说,在开发中遇到问题该如何去找到并且去解决他,相信很多人在开发中不少遇到过bug这个东西,有的对于bug已经无可奈何,搞人心态哦,不过bug是一 ...
- 帆软报表如何调整软件字体?字体太小看不清怎么办?
帆软报表如何调整软件字体?字体太小看不清怎么办? 新下载的帆软报表软件一打开是不是觉得字体很小?看的眼花缭乱快成老花眼了? 让我来教你怎么调大软件字体吧! 1.首先到桌面,右键软件"Fine ...
- 也许我们都小看了亚马逊AWS(中国)!
摘要: 在亚马逊发布的2018年二季度财报中,AWS继续成为财报的亮点,净销售额为61.05亿美元,比上年同期的41亿美元增长49%,增速持续维持在40%以上.尤其是利润率超过 25%,远高于其核心零 ...
最新文章
- iOS安全之class-dump的安装和使用
- 10.9 kill以及raise函数
- windows下学习linux,在Windows环境下学习Linux命令行的几种方法
- Cross Entropy Loss 交叉熵损失函数公式推导
- [Scrum] 12.22
- sql 只要一个字段相同则只显示一条数据_数据库
- 中科院回应木兰语言造假:当事人已停职;中国软件业务收入百强:华为蝉联十八冠;Ionic 5.0.0-beta.5 发布|极客头条...
- linux下解除端口防火墙,Linux下防火墙配置、端口的开启和关闭
- POP3协议主要功能及命令简介
- 根据日期获取周数的计算
- 使用在线报表设计器如何制作数据填报模板(efreport.com报表工具)
- 推送近期三波关于Vue.js的资讯
- 用Python操控手机APP攻略一
- Windwos 搭建TFTP
- 戴尔inspiron5498清灰教程
- 【历史上的今天】6 月 8 日:万维网之父诞生;PHP 公开发布;iPhone 4 问世
- Cobalt Strike使用详解
- hp计算机控制面板,HP5000打印机控制面板菜单解释
- android 字符画,抖音上很火的字符画 Android 实现 | 视频转换实现
- 《计算机网络自顶向下》Wireshark实验 Lab4 TCP
热门文章
- java hex to ascii_在java中读取hex文件并将其转换为ascii
- 四款职场效率神器,飞速提高你的工作效率
- python羊车门问题_羊车门问题简析
- CURA软件 3D打印切片软件 初次设置界面取消(忘记设置)后怎么再次进行设置
- 京瓷 (Kyocera)6025 6525 4028 4125等机器提示检查墨粉盒 ,摇晃粉盒,粉盒带动传感器的问题 报错处理维修方法
- Android RSA加密解密的 工具类的使用
- python如何读取uni文件_如何在Python中通过HTTP与UniProt交谈?
- 用 Python 实现资本资产定价模型
- 托福高频真词List10 // 附托福TPO阅读真题
- python提取人物特征_基于图像人物面部表情识别的特征提取优化方法与流程