代码改变世界

随笔分类 - C#

一文带你了解 C# DLR 的世界

2020-02-20 23:17 by 沉睡的木木夕, 1786 阅读, 收藏, 编辑
摘要:一文带你了解 C DLR 的世界 在很久之前,我写了一片文章 "dynamic结合匿名类型 匿名对象传参" ,里面我以为DLR内部是用反射实现的。因为那时候是心中想当然的认为只有反射能够在运行时解析对象的成员信息并调用成员方法。后来也是因为其他的事一直都没有回过头来把这一节知识给补上,正所谓亡羊补牢 阅读全文

如何重构我们以前写的垃圾代码——观察者模式

2020-02-12 14:48 by 沉睡的木木夕, 156 阅读, 收藏, 编辑
摘要:如何重构我们以前写的垃圾代码——观察者模式 首先来看下 GoF 对观察者模式的定义: 多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为 就是说当一个对象要发生变化时,要通知其他多个对象同时要发生相应的变化的行为。 从这句定义上来看,重点在于两个“对 阅读全文

C# 中 ConfigureAwait 相关答疑FAQ

2020-01-18 22:06 by 沉睡的木木夕, 2006 阅读, 收藏, 编辑
摘要:C 中 ConfigureAwait 相关答疑FAQ 在前段时间经常看到园子里有一些文章讨论到 ConfigureAwait,刚好今天在微软官方博客看到了 "Stephen Toub" 前不久的一篇答疑 ConfigureAwait 的一篇文章,想翻译过来。 原文地址:https://devblog 阅读全文

async-await 线程分析

2020-01-15 00:55 by 沉睡的木木夕, 219 阅读, 收藏, 编辑
摘要:这里没有线程 原文地址: "https://blog.stephencleary.com/2013/11/there is no thread.html" 前言 我是在看 C 8.0 新特性异步流时在评论里看到这篇文章的,阅读之后发现这篇文章干货满满,作者解释的非常清晰,里面的本质分析内容在《CLR 阅读全文

建造者模式(Builder)——从组装电脑开始

2020-01-06 01:01 by 沉睡的木木夕, 195 阅读, 收藏, 编辑
摘要:建造者模式(Builder)——从组装电脑开始 建造者模式概括起来就是将不同独立的组件按照一定的条件组合起来构成一个相对业务完整的对象。调用者无需知道构造的过程。 我们从组装电脑开始 让我们从买组装电脑开始吧。 首先要买一个电脑,一般都有两个选择 —— 品牌电脑和组装电脑,一般人为了省事和放心都会选 阅读全文

深入理解 ValueTask

2019-09-17 09:49 by 沉睡的木木夕, 1610 阅读, 收藏, 编辑
摘要:深入理解 ValueTask .NET Framework 4 里面的命名空间为 的 类。这个类以及它派生的 早已成为编程的主要部分,在 C 5 中的异步编程模式当作介绍了 。在这篇文章里,我会覆盖新的类 ,介绍它们在通用的使用上降低内存消耗来提高异步性能,这是非常重要的。 Task Task 有多 阅读全文

Tuple VS ValueTuple

2019-09-11 15:45 by 沉睡的木木夕, 181 阅读, 收藏, 编辑
摘要:深入理解 c 元组与值元组(Tuple,ValueTuple) 为什么有此文章 首先要说的是我们公司内部技术框架是用 abp.vnext 框架整合而来的,我们架构师对于 abp 相关的知识都很了然于胸了。并且这个框架的确很优秀,省了我们前期大量基础工作。架构师把主要的架子搭建好了之后,把应用层与核心 阅读全文

C#8.0—非空引用类型

2019-08-22 19:19 by 沉睡的木木夕, 793 阅读, 收藏, 编辑
摘要:非空引用类型——C 8.0 原文地址:https://devblogs.microsoft.com/dotnet/try out nullable reference types/?utm_source=vs_developer_news&utm_medium=referral 该新增的特性最关键的 阅读全文

C#8.0——异步流(AsyncStream)

2019-08-10 23:45 by 沉睡的木木夕, 1002 阅读, 收藏, 编辑
摘要:异步流(AsyncStream) 原文地址: "https://github.com/dotnet/roslyn/blob/master/docs/features/async streams.md" 注意:以下内容最好能根据反编译工具查看异步流相关类生成的代码效果最佳 异步流是可枚举类(Enume 阅读全文

递归,循环,尾递归

2018-11-13 10:55 by 沉睡的木木夕, 669 阅读, 收藏, 编辑
摘要:递归,循环,尾递归 方法递归,简而言之就是方法本身自己调用自己; 咬文嚼字的分析就是两个过程:“递“过程和”归“过程,所有的递归问题都能用地推公式标识.例如斐波拉契数列就能用递推公式表示: $$ f(n) = f(n 1) +f(n 2)其中fn(0)=1,f(1)=1 $$ 转换成代码就是 c p 阅读全文

C#7.2——编写安全高效的C#代码

2018-11-07 18:59 by 沉睡的木木夕, 864 阅读, 收藏, 编辑
摘要:原文地址:https://docs.microsoft.com/zh cn/dotnet/csharp/write safe efficient code?view=netcore 2.1 值类型的优势能避免堆分配。而劣势就是往往伴随的数据的拷贝。这就导致了在大量的值类型数据很难的最大化优化这些算法 阅读全文

.NET 单元测试的利剑——模拟框架Moq(简述篇)

2018-04-25 00:45 by 沉睡的木木夕, 686 阅读, 收藏, 编辑
摘要:.NET 单元测试的利剑——模拟框架Moq 前言 这篇文章是翻译文,因为通过自己参与的项目,越发觉得单元测试的重要性,特别是当跟业务数据打交道的时候的,Moq就如雪中送炭,所以想学习这个框架,就从这篇译文开始吧,顺便提升下自己英文阅读水平吧,由于英语实在不行,借助有道翻译有时候还理解不了原文的意思。 阅读全文

微服务架构总结与日后学习导向

2018-02-08 10:52 by 沉睡的木木夕, 548 阅读, 收藏, 编辑
摘要:基于DDD思想的微服务架构学习导向 架构学习前言 因为公司架构组决定在后续的项目系统开发中采用 “微服务架构+.netcore” 模式,这个模式直接用于实践,对于我们公司这些没有实践经验的人来说,开发难度是显而易见的。正因为如此,公司架构师才数次为我们研发人员进行架构培训,讲关于这套架构所涉及的知识 阅读全文

怎样使用表达式树生成动态查询

2018-01-11 12:11 by 沉睡的木木夕, 451 阅读, 收藏, 编辑
摘要:[翻译]怎样使用表达式树生成动态查询 在LINQ,表达式树常用于结构化查询,目标资源数据实现了 "IQueryable" . 例如,LINQ为关系型数据存储查询提供了 "IQueryable" 接口。C 编译器将这些数据源的查询编译成运行时的表达式树代码。然后查询提供程序可以遍历表达式树数据结构,并 阅读全文

如何执行表达式树

2018-01-10 09:42 by 沉睡的木木夕, 264 阅读, 收藏, 编辑
摘要:执行表达式树 本节主要展示如何去执行表达式树。运行一个可能含有返回值或只是执行一个操作,比如方法调用的表达式树。 只有表示lambda表达式的表达式树能够被执行。它是一个 "LambdaExpression" 或 "Expression" 类型。为了执行这些表达式树,调用 "Compile" 方法来 阅读全文

表达式树(Expression Trees)

2018-01-08 19:00 by 沉睡的木木夕, 279 阅读, 收藏, 编辑
摘要:[翻译]表达式树(Expression Trees) 原文地址:https://docs.microsoft.com/en us/dotnet/csharp/programming guide/concepts/expression trees/index 表达式树展示的是代码的树形结构,每一个节点 阅读全文

ABP的依赖注入

2017-12-29 12:54 by 沉睡的木木夕, 632 阅读, 收藏, 编辑
摘要:[TOC] 说说ABP的依赖注入 上篇 "abp运行机制分析" 分析了ABP在启动时,都做了那些事;这篇我们来说说ABP的最核心的一部分:依赖注入(DependencyInjection),以下简称DI; DI的概念我就不说了,关键字出来的资料非常多了,这里就不说了,这里主要讨论的是ABP是如何做到 阅读全文

NPOI导出Excel及使用问题

2017-12-28 12:43 by 沉睡的木木夕, 1449 阅读, 收藏, 编辑
摘要:NPOI导出Excel及使用问题 因为最近公司质管部门提出了一个统计报表的需求:要求导出一个2016及2017年度深圳区域的所有供应商的费用成本计算——一个22列的Excel表,其中还包括多列的合并单元格;说实话,统计报表功能其实我还是很少涉及的,以前都是直接用DataTable+输出流导出Exce 阅读全文

关于并发的那些坑儿

2016-10-20 19:03 by 沉睡的木木夕, 117 阅读, 收藏, 编辑
摘要:1. 说一些并发编程的那些话 一说到并发,脑子首先冲出来的是啥?复杂,高难度,难调试... 总的来说就是——高逼格(逃: 的确,并发编程的确不是那么简单的事,初级程序员基本上都接触不到并发,更何况是编程了;但是,只要你有心并且耐心学习下去,你就会发现,并发编程也不是遥不可及的! 我在学习并发相关的知 阅读全文

修改MVC视图默认搜索规则(IViewEngine)

2016-08-24 11:55 by 沉睡的木木夕, 793 阅读, 收藏, 编辑
摘要:前几天我自己在写一个系统,写到后台管理系统的时候,我突然有个想法就是:想在区域视图下新建文件,单独处理后台一些业务:Area/AdminManager/View/Content/Index.cshtml;这么一个路径,我刚建完就发现有点不对了,因为根据mvc默认的规则就是ControllerName 阅读全文

使用递归方法拼接层级树

2016-08-19 13:16 by 沉睡的木木夕, 1276 阅读, 收藏, 编辑
摘要:递归算法这个是非常常见的一个算法,也是大多数人都会用的,因为它足够简单,通俗易懂!在遍历城市,树等大脑里反应出来的第一方法大多就属于这个了 递归容易使用,但是也容易用坏,我想"内存溢出"这个估计是每个人用递归都会碰到的bug,我为什么还是要写这方面的知识呢,那是因为文章的最后我有一个问题要问 首先我 阅读全文

直接读取网页写成静态页

2016-08-03 19:45 by 沉睡的木木夕, 59 阅读, 收藏, 编辑
摘要:1. 2.这种最常用 3.见资料的写法 http://blog.csdn.net/zhanglei5415/article/details/1622165 阅读全文

Json.Net组件指定/忽略序列化字段属性技巧知识点

2016-07-20 11:41 by 沉睡的木木夕, 309 阅读, 收藏, 编辑
摘要:我们在用Json.Net序列化组件序列化类的时候,经常有这样的一个需求:指定被序列化类中的某些字段属性是要忽略的,或者是指定字段属性序列化 比如下面这个类: 我要序列化其中的属性ID,Name 忽略其他的怎么写呢 其中DataMember特性就是说明该成员属性是指定被序列化的,与此同时,在类外还要加 阅读全文

dynamic结合匿名类型 匿名对象传参

2015-11-18 23:54 by 沉睡的木木夕, 513 阅读, 收藏, 编辑
摘要:首先说明下,我一般很少用dynamic关键字(类)的,因为毕竟是由反射实现的,所以对于性能方面还是吃亏不少(注:由于心里没底,查了一些资料得知,dynamic实质上好像不是由反射实现的,其性能也比直接反射要高不少,至于为什么,我也不明白,希望你们知道的能留言告诉我一下!谢谢啦 ^_^)我也不知道为什 阅读全文

C#异步,多线程下的HttpContext丢失问题

2015-11-13 11:09 by 沉睡的木木夕, 701 阅读, 收藏, 编辑
摘要:1、思路概述 首先让我把大概的一个思路先说一遍吧。 我在一个页面中要同时调用两个接口,而我要给这些接口一些参数:就是我通过HttpContext.Current.Request.QueryString获取的URL地址上的参数。因为由于特殊需要,我需要把这写参数全部放到一个类中,然后让Page页面继承 阅读全文

添加List集合覆盖问题

2015-09-11 18:22 by 沉睡的木木夕, 6762 阅读, 收藏, 编辑
摘要:今天在做一个项目的时候,发现了这样一个问题,为了让大家看得更直接明了,我直接放代码: 当你断点调试的时候就会发现一个很严重的问题,那就是后一个info实体会不断的覆盖前一个实体,最后导致list集合里面的内容都是一样的!当时我一时还不知道为什么会有这个结果,于是我又在for循环里面添加另一个集合记录 阅读全文

表达式树-理解与进阶

2015-09-02 17:55 by 沉睡的木木夕, 134 阅读, 收藏, 编辑
摘要:刚接触LINQ的人往往觉得表达式树很不容易理解。通过这篇文章我希望大家看到它其实并不像想象中那么难。您只要有普通的LINQ知识便可以轻松理解本文。 表达式树提供一个将可执行代码转换成数据的方法。如果你要在执行代码之前修改或转换此代码,那么它是非常有价值的。尤其是当你要将C#代码 如LINQ查询表达式 阅读全文