不知道大家以前是怎么使用实体中的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相关推荐

  1. Python也有做大型游戏的潜力?原来我们小看了Python,无所不能!!

    前言 在小编以前还没怎么接触很多编程语言时,都是认为游戏(端游,手游)都是用C做出来了!不知道大家有没有这么想过,反正我是这样的.后来慢慢接触多了,才知道并不是所有的都是这个样子的! 学习python ...

  2. 别小看不起眼的电阻,里面大有学问!

    电阻在我们的工作中比较常见,别小看这不起眼的电阻,里面有很多学问. 贴片电阻(SMD Resistor),又名片式固定电阻器,是一种设计为贴片安装的电阻器. 这些SMD电阻器通常比传统的电阻器小得多, ...

  3. 别小看这不起眼的电阻,里面有很多学问!

    关注.星标公众号,直达精彩内容 电阻在我们的工作中比较常见,别小看这不起眼的电阻,里面有很多学问. 贴片电阻(SMD Resistor),又名片式固定电阻器,是一种设计为贴片安装的电阻器. 这些SMD ...

  4. php多人点餐可以看到对方点的菜,千万不要小看你身边那个会点菜的人,因为

    饭局上,你常常是负责点菜的那个人,还是只负责吃?拿起菜单点菜,你是很从容,还是不知道怎么点? 事实上,饭局上那个会点菜的人,千万不能小看. 某次随老板外出开会,跟去的几个人全是业务精英.晚上吃饭,都推 ...

  5. 别小看无人配送,长大了就是自动驾驶的最终实现。

    别小看无人配送,长大了就是自动驾驶的最终实现. 自动驾驶正在驶入深水区.无数人正期盼着 L4 或者 L5 级别自动驾驶汽车的到来,但显然一切还需等待.今年 Uber 自动驾驶致死案更是给所有自动驾驶厂 ...

  6. 不要小看日本的AI公司

    唐旭 夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI "超越Google." 有家日本AI创业公司,把这个当成奋斗目标挂在嘴边.而且还放言说,如果他们全速前进,肯定能干 ...

  7. 【毕业答辩】别小看毕业答辩PPT,它和你的论文一样重要

    别小看毕业答辩PPT,它和你的论文一样重要 论文答辩是大学生踏入社会前最后一次终极大考,它除了考验学生对于专业知识的掌握程度以外,对于学生的应用创新能力也有一定要求. 如果希望顺利通过这个考验并且带着 ...

  8. 马小看前端( 在开发中遇到问题如何解决 )

    马小看前端( 在开发中遇到问题如何解决 ) 今天我们来说说,在开发中遇到问题该如何去找到并且去解决他,相信很多人在开发中不少遇到过bug这个东西,有的对于bug已经无可奈何,搞人心态哦,不过bug是一 ...

  9. 帆软报表如何调整软件字体?字体太小看不清怎么办?

    帆软报表如何调整软件字体?字体太小看不清怎么办? 新下载的帆软报表软件一打开是不是觉得字体很小?看的眼花缭乱快成老花眼了? 让我来教你怎么调大软件字体吧! 1.首先到桌面,右键软件"Fine ...

  10. 也许我们都小看了亚马逊AWS(中国)!

    摘要: 在亚马逊发布的2018年二季度财报中,AWS继续成为财报的亮点,净销售额为61.05亿美元,比上年同期的41亿美元增长49%,增速持续维持在40%以上.尤其是利润率超过 25%,远高于其核心零 ...

最新文章

  1. iOS安全之class-dump的安装和使用
  2. 10.9 kill以及raise函数
  3. windows下学习linux,在Windows环境下学习Linux命令行的几种方法
  4. Cross Entropy Loss 交叉熵损失函数公式推导
  5. [Scrum] 12.22
  6. sql 只要一个字段相同则只显示一条数据_数据库
  7. 中科院回应木兰语言造假:当事人已停职;中国软件业务收入百强:华为蝉联十八冠;Ionic 5.0.0-beta.5 发布|极客头条...
  8. linux下解除端口防火墙,Linux下防火墙配置、端口的开启和关闭
  9. POP3协议主要功能及命令简介
  10. 根据日期获取周数的计算
  11. 使用在线报表设计器如何制作数据填报模板(efreport.com报表工具)
  12. 推送近期三波关于Vue.js的资讯
  13. 用Python操控手机APP攻略一
  14. Windwos 搭建TFTP
  15. 戴尔inspiron5498清灰教程
  16. 【历史上的今天】6 月 8 日:万维网之父诞生;PHP 公开发布;iPhone 4 问世
  17. Cobalt Strike使用详解
  18. hp计算机控制面板,HP5000打印机控制面板菜单解释
  19. android 字符画,抖音上很火的字符画 Android 实现 | 视频转换实现
  20. 《计算机网络自顶向下》Wireshark实验 Lab4 TCP

热门文章

  1. java hex to ascii_在java中读取hex文件并将其转换为ascii
  2. 四款职场效率神器,飞速提高你的工作效率
  3. python羊车门问题_羊车门问题简析
  4. CURA软件 3D打印切片软件 初次设置界面取消(忘记设置)后怎么再次进行设置
  5. 京瓷 (Kyocera)6025 6525 4028 4125等机器提示检查墨粉盒 ,摇晃粉盒,粉盒带动传感器的问题 报错处理维修方法
  6. Android RSA加密解密的 工具类的使用
  7. python如何读取uni文件_如何在Python中通过HTTP与UniProt交谈?
  8. 用 Python 实现资本资产定价模型
  9. 托福高频真词List10 // 附托福TPO阅读真题
  10. python提取人物特征_基于图像人物面部表情识别的特征提取优化方法与流程