摘要:
C#中有很多集合类型,比如List<T>,Dictionary<TKey,TValue>,这些是我们常用的,但也有一些少众的场合使用的集合:特征类型的ReadOnly集合,Sort集合;封装特定算法类型的集合:Queue<T>(先进先出),Stack<T>(后进先出),LinkedList<T>(链 阅读全文
摘要:
Repository 在做查询的时候,如果查询条件多的话,linq查询表达式会写的很复杂,比如: 1 public IQueryable<Student> Get(int id, string name, string address, Status? status, DateTime create 阅读全文
摘要:
IOC: Inversion Of Control 控制反转 DI: Dependency Injection 依赖注入 1.控制反转 Inversion Of Control 的前世今生 1.1 IOC理论产生的背景 讨论控制反转之前,先看看软件系统提出控制反转的前世今生。一个完整精密的软件系统, 阅读全文
摘要:
总所周知,.NET5.0马上就要来了,最后一个预览版RC2也已经发布了,在11月的时候,我们就正式的发布了,然后我们就可以迁移使用了,当然今天说的重点不是.NET,今天说的是伴随着.NET5一起到来的C#9.0,既然要了解9.0,肯定要对之前的版本也稍微了解一下,至少不会面试的时候出现:XXX这个功 阅读全文
摘要:
一:背景 1. 讲故事 前几天看同事在用 linq 给内存中的两个 model 做左连接,用过的朋友都知道,你一定少不了一个叫做 DefaultIfEmpty 函数,这玩意吧,本来很流畅的 from...in...join, 突然搞进来这么一个函数,真的是恶心他妈给恶心开门,恶心到家了,简化后的代码 阅读全文
摘要:
翻译自 John Demetriou 2019年2月17日 的文章 《C# 8 – Introducing Index Struct And A Brand New Usage For The Hat Operator》 今天我们要讲的是 Hat 运算符(^)。目前为止,Hat 运算符(^)已经被用 阅读全文
摘要:
翻译自 John Demetriou 2020年4月6日 的文章 《C# 8 Is Introducing Ranges》 我们之前讨论过的 C# 中的一个特性 System.Index 结构体,与另一特性 System.Range 结构体 是携手并进的。 在 C# 8.0 之前,没有访问集合中任意 阅读全文
摘要:
前言 在实际的项目开发中,我们会遇到许多需要通过程序发送邮件的场景,比如异常报警、消息、进度通知等等。一般情况下我们使用原生的SmtpClient类库居多,它能满足我们绝大多数场景。但是使用起来不够简洁,许多场景需要我们自行封装方法去实现,而且代码量非常可观。庆幸的是,我们有一款非常棒的组件,能满足 阅读全文