全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。这让java开发人员羡慕不已,呵呵。1 经过简化的Property早些时候我们这样声明Property01privatestring_myName;0203publicstringMyName04050607getreturn_myName; 0809set _myName = value; 1011千篇一律的这样声明,没有多大意义,于是C#的设计人员将这个千篇一律的工作交给了编译器帮我们做了,我们现在可以这样声明1publicstringMyName get;set; 当然他不会牺牲灵活性,我们可以单独给get或者set设定访问限制符,例如1publicstringMyName get;protectedinternalset; 2 经过两次变异的委托写法在.net 1.1时我们不得不声明方法后才在委托中使用,在.net 2.0之后我们可以使用匿名委托,他不单可以简化写法,还可以在匿名委托中访问范围内的变量;再后来拉姆达表达式来了,写法就更简便了。01classMyClass0203publicdelegatevoidDoSomething(inta);0405/定义方法委托06privatevoidDoIt(inta) 07Console.WriteLine(a);080910privatevoidHowtoDo(DoSomething doMethod,inta) 11doMethod(a);121314publicstaticvoidMain(string args) 15MyClass mc =newMyClass();16/调用定义的方法委托17mc.HowtoDo(newDoSomething(mc.DoIt), 10);18intx = 10;19/使用匿名委托20mc.HowtoDo(delegate(inta)21Console.WriteLine(a + x);22,10);2324/使用lamda表达式25mc.HowtoDo(a=Console.WriteLine(a+x),10);2627Console.ReadLine();28293 集合类的声明之前我们声明一个List并给list赋初始值,必须得这么写:1List list =newList();2list.Add(a一);3list.Add(b二);4list.Add(c三);现在不需要了,直接写就可以了1List list =newList 2def,OK3;4 集合类各个项的操作我们为了逐个处理集合中的项,需要这么写:1foreach(stringiteminlist)23Console.WriteLine(item);4现在不需要了,这样就可以了1list.ForEach(a = Console.WriteLine(a);代码是不是清爽了很多。5 using = try finally为了在使用完毕时释放资源,我们经常要用using,using实质上就是try fiannaly的一个语法糖而已。例如1StreamWriter sw =null;2try34sw =newStreamWriter(d:abc.txt);5sw.WriteLine(test);67finally8if(sw!=null) sw.Dispose();9上面的代码可以简化为:1using(var sw =newStreamWriter(d:abc.txt) 2sw.WriteLine(test);36 可爱的varvar的意义时不必写声明的类型,编译器会根据后面对var的赋值判断它的类型,var的类型一旦确认就不能再改变,它只能作为局部变量使用,不能用做字段也不能用做参数声明。例如:1var writer =newStreamWriter(path);1for(var i=0;i 9?b.ToString():”0”+b;新宝宝两个问号 ?,它表示左边的变量如果为null则值为右边的变量,否则就是左边的变量值1stringa =null;2var b = a?”;8 类型实例化的语法糖1publicclassAbc23publicintID get;set; 45publicstringName get;set; 67publicstringUrl get;set; 8我们没有为上面的类声明构造函数,但是我们可以像下面的形式来实例化它1publicstaticvoidMain(string args) 2var abc =newAbc3ID=1,4Name=yukaizhao,5Url=/6;79 传说中的扩展方法在c#3.5时引入了扩展方法,我们可以在不修改类源码的情况下给类增加实例方法,这个很有意义。它的实质也是一种语法糖的实现例如我们给String类扩展一个IsNumber的方法:01publicstaticclassStringExt 02staticprivateRegex regexNumber =newRegex(d+);03staticpublicboolIsNumber(thisstringinput)0405if(string.IsNullOrEmpty(input)0607returnfalse;0809returnregexNumber.IsMatch(input);1011我们可以在String实例上调用这个方法了1var abc = “123”;2var isNumber = abs.IsNumber();10使用匿名类1var a =new2ID = 1,Name=”yukaizhao”,BlogUrl=”/yukaizhao/”3;匿名类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川省儿童医院(四川省儿童医学中心)心理治疗师招聘1人建设笔试参考题库及答案解析
- 2026广州发展新能源集团股份有限公司校园招聘建设考试参考试题及答案解析
- 2026黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学机电工程学院机电控制及自动化系招聘建设笔试参考题库及答案解析
- 2026年马鞍山首创水务有限责任公司招聘劳务人员建设考试备考试题及答案解析
- 2026云南大理州弥渡县中医医院招聘编制外卫生专业技术人员3人建设考试参考试题及答案解析
- 2026福建福州新区航空城发展投资有限公司招聘1人建设考试备考试题及答案解析
- 2026浙江宁波大学招聘1人建设笔试参考题库及答案解析
- 2026内蒙古信兴新能源材料有限公司招聘4人建设笔试参考题库及答案解析
- 2026年甘肃白银有色集团股份有限公司所属企业技能操作岗招聘32人建设考试参考试题及答案解析
- 2026黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学数学学院招聘1人建设笔试备考题库及答案解析
- 2026年人教版八年级语文下册第四单元 阅读综合实践 大单元作业设计 教学课件
- 2026年春季统编版新教材八年级下册道德与法治教学计划
- 2026年从事基础研究人员长周期管理 节点奖励:科技人员激励双机制
- 2026年宁夏葡萄酒与防沙治沙职业技术学院单招职业技能考试题库附参考答案详解(a卷)
- 2026年国家义务教育质量监测小学德育模拟测评估考试试题+答案
- 2023化学检验员岗位技能标准
- 2026年4月全国自考试题及答案《国民经济统计概论》
- 城市运行管理服务平台 管理监督指标及评价标准
- AQ3062-2025精细化工企业安全管理规范解读
- 2025广西林业集团有限公司招聘51人(第一批)笔试参考题库附带答案详解
- 私厨上门定制餐饮服务合同
评论
0/150
提交评论