Youhoooo

导航

2018年1月11日 #

【转】C#异步的世界【下】

摘要: 【转】C#异步的世界【下】 接上篇:《C#异步的世界【上】》 上篇主要分析了async\await之前的一些异步模式,今天说异步的主要是指C#5的async\await异步。在此为了方便的表述,我们称async\await之前的异步为“旧异步”,async\await为“新异步”。 新异步的使用 只 阅读全文

posted @ 2018-01-11 11:45 RYouhoo 阅读(386) 评论(0) 推荐(0) 编辑

【转】C#异步的世界【上】

摘要: 【转】C#异步的世界【上】 新进阶的程序员可能对async、await用得比较多,却对之前的异步了解甚少。本人就是此类,因此打算回顾学习下异步的进化史。 本文主要是回顾async异步模式之前的异步,下篇文章再来重点分析async异步模式。 APM APM 异步编程模型,Asynchronous Pr 阅读全文

posted @ 2018-01-11 11:43 RYouhoo 阅读(616) 评论(0) 推荐(2) 编辑

【转】那些年搞不懂的术语、概念:协变、逆变、不变体

摘要: 【转】那些年搞不懂的术语、概念:协变、逆变、不变体 简述什么是协变性、逆变性、不变性 协变性,如:string->object (子类到父类的转换) 逆变性,如:object->string (父类到子类的转换) 不变性,基于上面两种情况,不可变。具体下面再做分析。 泛型委托的可变性 先使用框架定义 阅读全文

posted @ 2018-01-11 11:41 RYouhoo 阅读(518) 评论(0) 推荐(1) 编辑

【转】再讲IQueryable<T>,揭开表达式树的神秘面纱

摘要: 【转】再讲IQueryable<T>,揭开表达式树的神秘面纱 接上篇《先说IEnumerable,我们每天用的foreach你真的懂它吗?》 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑)。那么在此之前我们有必要仔细了解下 IQueryable 阅读全文

posted @ 2018-01-11 11:40 RYouhoo 阅读(907) 评论(0) 推荐(0) 编辑

【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?

摘要: 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗? 我们先思考几个问题: 接下来,先开始我们的正文。 自己实现迭代器 .net中迭代器是通过IEnumerable和IEnumerator接口来实现的,今天我们也来依葫芦画瓢。 首先来看看这两个接口的定义: 并没有想象的那么复杂 阅读全文

posted @ 2018-01-11 11:38 RYouhoo 阅读(394) 评论(2) 推荐(2) 编辑

【转】Linq表达式、Lambda表达式你更喜欢哪个?

摘要: 【转】Linq表达式、Lambda表达式你更喜欢哪个? 什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性。 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在《深入理解C#》中称为点标记。 查询表达式、点 阅读全文

posted @ 2018-01-11 11:36 RYouhoo 阅读(333) 评论(0) 推荐(0) 编辑

【转】你知道C#中的Lambda表达式的演化过程吗?

摘要: 【转】你知道C#中的Lambda表达式的演化过程吗? 那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂。 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型。(用来传递数字的类型有int、float、double,用来传递方法的就有委托) 例二 阅读全文

posted @ 2018-01-11 11:30 RYouhoo 阅读(276) 评论(0) 推荐(0) 编辑

【转】你必须知道的EF知识和经验

摘要: 【转】你必须知道的EF知识和经验 注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式。 推荐MiniProfiler插件 工欲善其事,必先利其器。 我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql。 虽然我们可以使用SQ 阅读全文

posted @ 2018-01-11 11:27 RYouhoo 阅读(795) 评论(0) 推荐(1) 编辑

【转】五、谈扩展方法的理解

摘要: 【转】五、谈扩展方法的理解 为什么要用扩展方法 在说什么是扩展方法之前我们先来说说为什么要用扩展方法。 首先我们定义一个 Person 类: 加入这个类来自第三方的dll引用,且现在我们需要添加一个方法 GetAge 获取年龄。你可能会想到自己定一个子类继承: 是的,这样可以实现我们的需求。不过实现 阅读全文

posted @ 2018-01-11 11:24 RYouhoo 阅读(406) 评论(1) 推荐(1) 编辑

【转】四、可空类型Nullable<T>到底是什么鬼

摘要: 【转】四、可空类型Nullable<T>到底是什么鬼 值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null。 为什么引用类型可以为空?因为引用类型变量都是保存一个对象的地址引用(就像一个url对应一个页面),而引用类型值为null的时候是变量值指向了一个空 阅读全文

posted @ 2018-01-11 11:21 RYouhoo 阅读(345) 评论(0) 推荐(0) 编辑