余文

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2019年1月25日

摘要: 这个是在做机票相关业务时遇到的问题。 机票订单会根据情况被拆为多单,每单在不同时间范围内对应不同的退票费。 因为订单退改是一起退改,所以提供给用户的是两个订单总的退票费。 这就需要对多个订单在不同时间段的退票费进行交叉求和。 本处为方便,以订单被拆为两单为例。 如下,订单被拆为两单,两单在不同时间段 阅读全文
posted @ 2019-01-25 11:07 余文 阅读(913) 评论(0) 推荐(1) 编辑

2015年8月28日

摘要: 原文地址:用控制台写类窗体2048小游戏作者:余文2048是一个很简单的小游戏,这是我自己实现的一个版本。这个版本有两个特色这是一个高仿窗体程序的控制台程序。通过使用指针将四个方向的移动简化成了一个方向的移动。当初刚出来2048小游戏的时候,玩的不亦乐乎。之后根据游戏规则自己花了一下午时间用控制台写... 阅读全文
posted @ 2015-08-28 18:48 余文 阅读(1919) 评论(0) 推荐(1) 编辑

2014年12月19日

摘要: 初始化Dictionary不是什么新东西,你可以简单的通过Collection Initializer来初始化一个Dictionary,这是从C#3.0就有的特性。Collection Initializer添加一个参数做key,一个参数作为对应key的value。C#6.0添加了一种在初始化中使用... 阅读全文
posted @ 2014-12-19 11:20 余文 阅读(670) 评论(0) 推荐(0) 编辑

摘要: 在引入nameof操作符的同时,C# 6.0 还引入了Null-Conditional操作符。它使开发者可以检查object引用链中的null值。这个null-conditional 操作符写作"?.",会在引用链中任一个为null时返回null。这避免了对每一级进行null检查。假设我们有一个cl... 阅读全文
posted @ 2014-12-19 11:00 余文 阅读(691) 评论(0) 推荐(0) 编辑

摘要: C# 6.0 引入了一个名为“nameof”的新的操作符,它的作用是接收元素而后返回元素名字。这个操作符能将class和class的所用成员,比如方法、变量以及属性作为参数而后返回一个它们的名字。这避免我们在代码中hardcode字符串,也避免使用反射来获得这些名字。下面的代码块是一个使用nameo... 阅读全文
posted @ 2014-12-19 10:40 余文 阅读(8392) 评论(1) 推荐(2) 编辑

摘要: C#6.0 对异常处理有两处改进,一个是在上一篇文章中我们讨论了的在catch和finally中使用await,另一个是exception filter。在catch和finally中使用await是一个开发者欢迎的功能,无疑exception filter是另一个给开发者处理异常带来极大便利的新功... 阅读全文
posted @ 2014-12-19 10:22 余文 阅读(1119) 评论(0) 推荐(0) 编辑

摘要: Asyn方法是一个现在很常用的方法,当使用async和await时,你或许曾有这样的经历,就是你想要在catch块或finally块中使用它们,比如当出现一个exception而你希望将日志记在文件或者调用一个服务将exception信息发送给server,而这些操作可能很耗时。这种情况下,在cat... 阅读全文
posted @ 2014-12-19 10:05 余文 阅读(977) 评论(0) 推荐(0) 编辑

2014年12月18日

摘要: Expression-bodied 方法是C# 6.0 中另一个能简化代码的特性。我们已经对lambda表达式将funciton和delegation关联起来的这种用法很熟悉了。Expression-bodied 将lambda 表达式的这种用法扩展到了方法上。像下面代码所示,我们有一个GetTim... 阅读全文
posted @ 2014-12-18 15:01 余文 阅读(1599) 评论(0) 推荐(1) 编辑

摘要: 在之前的开发中,属性只能在构造函数中进行初始化,如果它有定义一个后台字段的话,那这个字段就就可以在定义的地方初始化。C# 6.0 引进了一个Auto-Property initializer机制使属性可以像字段一样在它声明的时候直接初始化。下面的代码段展示了Auto-Property初始化器是怎么工... 阅读全文
posted @ 2014-12-18 14:45 余文 阅读(658) 评论(0) 推荐(0) 编辑

摘要: 在开发中经常需要对字符串进行格式化处理。我们一般使用String.Format()方法,它会将指定字符串中的每个格式项替换为相应对象的值的文本等效项。虽然这很普通,但有时会容易使人迷惑并造成错误。因为,我们需要为每一个格式化项指定占位符并将他们和实际的对象值对应起来。我们还要保证我们给每一个占位符都... 阅读全文
posted @ 2014-12-18 13:50 余文 阅读(1408) 评论(2) 推荐(0) 编辑