不要小看了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定义属性和字段,并不是必要的,要根据实际情况来使用。小小的使用经验,希望对大家所有启发

下篇介绍动态加载中的泛型委托 参数使用

时间: 2024-10-28 20:27:59

不要小看了get 与set的相关文章

张书乐:自媒体别小看了贴标签,这里面都是粉丝

标签在很多自媒体平台上都有出现,而很多人一开始并不太关注设定标签的事情,但真心别小看了它,我们用微博做例子,看看标签里藏着什么门道. 文/张书乐(人民网.人民邮电报专栏作者) 新著有<微博运营完全自学手册> 接上篇<自媒体头像可卖萌,一周换7次未必不吸粉> 在微博上,有个自定义的标签设定,可以添加10个标签.别以为一个小小的标签,就随便写几个得了,那损失真的是大大的. 理由很简单,第一波粉丝都是从标签处来. 微博注册之初,系统会有一个推荐收听功能,这个推荐收听所一句就是拥有共同的微

别小看了“坐轮椅的超级玛丽”

对经典游戏的自由修改,也让不少玩家验证了自己的游戏梦想,加深了自己对制作游戏的兴趣. 文/张书乐 原载于<人民邮电报>2016年1月29日<乐游记>专栏 新年伊始,一则关于游戏的小趣闻就在网上火了.趣闻说的是,来自以色列的4位网友对经典游戏<超级玛丽>进行了二次创作,令主角马里奥变得不能走路,必须坐着轮椅过关. 原本活蹦乱跳的马里奥坐到了轮椅上,这款改编游戏怎么玩?从游戏曝光的画面和相关介绍来看,4位以色列网友其实就是在原版游戏所有的障碍物前搭建了斜坡或安装了升降梯,相

别小看树莓派 极客们玩出16个倍儿有趣的项目

别小看树莓派 极客们玩出16个倍儿有趣的项目 [摘要]极客和DIY爱好者使用树莓派进行无数小发明,其中一些项目非常有趣,比如机器人管家.高空拍照气球.傻瓜相机.复古游戏机等等. 腾讯数码讯(编译:Raul)新一代的树莓派体积更小.价格更低,可以利用的领域更多,因此它也成为了树莓派历史上最受欢迎的一代产品.而对于广大极客和DIY爱好者来说,如何好好的将树莓派利用一番,似乎也成为了非常有趣的项目.下面就让我们一起来看看在星球上都有哪些使用到树莓派的小发明让我们足够感兴趣. 1.定格相机 其实树莓派在

别小看锤子,老罗真的很认真

老罗刚说做手机的时候,很多人嘲笑他,我也是看笑话的心态,直到我看到这样一张图片,我觉得我可能错了.发布会后,老罗说他认真,我相信. 这个是老罗的计算器应用,很普通的样子.第一次看到的时候我很吃惊.因为我看到了计算器屏幕上那一排淡淡的“8”. 用过真正的计算器的人都知道,液晶屏幕在光线的照射下会出现印子,即使没有通电,也会显示出淡淡数字"8". 但是手机屏幕可不是计算机器的数码屏幕,这个“8”是专门做上去的.众所周知,老罗的风格是拟物化,由此可见老罗的追求. 再看按键,每个按键的下面会有

互联网界神话——永远不要小看任何一个人

有位朋友曾跟我说过:在北京,你不要小看任何一个人. 其实,不管在哪,这句话总没有错. 1号人物--乔布斯:如今备受万人追捧的苹果,孰不知曾经也被人小瞧过.1976年的时候,雅达利创始人诺兰·布什内尔只需出资 5 万美元就能获得苹果三分之一的股份,但他却把机会推给了红杉资本.但是更遗憾的是,红杉资本的投资人看不上衣衫不整.长发披肩的乔布斯. 最终在苹果将要面临破产的时候,迈克·马克库拉给苹果资助了25万美元,持有苹果30%的股份,成为苹果第一位投资人. 2号人物--马云:在8号的路演现场,马云说了

950130000客服工作者故事:永远不要小看自己

他一直觉得自己170的个子很矮,觉得自己遇到生人会躲避的这个习惯很丢脸,觉得自己不会与人沟通很尴尬.他说自己就是950130000客服中心墙角里一只小蚂蚁的存在.真的是这样吗? 其实,他大可不必.他在工作上的踏实与机智就足以证明在950130000客服中心,他并不是小小的存在. 虽然他不怎么讨女孩子欢心,可是工作上的确是把好手.950130000是专门为手机.固话用户提供95013一机多号业务的办理.使用等方面的客服工作中心,一旦遇到事情或者问题,都以客户服务最优化.公司损失最小化处理.记得有一

不可小看的移动广告聚合平台-KeyMob

随着时代的迅速发展,微信,QQ已经是社交即时通讯中活跃率最高的产品,也是促进移动互联网社交广告平台发展的重要资源.KeyMob洞察了移动社交广告发展前景,成立了移动聚合广告平台-KeyMob. KeyMob依托公司多年丰富的移动互联网产品开发和运营经验,为开发者提供轻松实现应用交叉推广,更方便对移动营销广告进行高效的优化管理服务,并为开发者带来更高的广告收入. KeyMob优势: 一.助您顺利通过市场审核 KeyMob通过云端集成广告平台的方式,让市场无法检测到广告,助您顺利通过应用市场审核:

小看MTU值

前言 修改MTU值(即数据包的最大传送字节数值)对个人上网用户可能意义不是很重大,毕竟我们没有所谓的那么大的流量.然而对于服务器来说就大不寻常了,一反面这是展现你网络专业技术的时候,另一方面提高了网络性能,所以说是一个值得掌握的小技能.下面分别介绍了在windows和Linux中MTU值的修改方法,方法可能单一,本文意义在于引导,搞网络就是一个探索的过程嘛! 一.windows MTU 1.检测本网关的最大MTU值(采用替换法): ping -l 1500 -f 192.168.111.254

别小看网盘口水战 背后藏着无尽的杀机

话题人物周鸿祎,除了这两天沸沸扬扬和酷派.乐视之间的手机话题口水战外,在8月关于网盘的话题,似乎更加触及底牌和利益攸关.手机合作者没了可以找,云盘被搞了,就真没了.尽管后者看似"烧钱". 文/张书乐 刊载于<法人>杂志2015年9月刊 8月中旬,针对央视报道腾讯等举报360云盘涉黄的消息,360官方回应称已根据国家相关法律法规进行管控,并与其他互联网公司建立联动机制,开展联合打击. 同时,360还说了一段耐人寻味的辩白:自2015年1月以来就陆续接到用户举报,一些不法分子利