随笔分类 -  C#遗忘系列

摘要:一:背景 1. 讲故事 前几天在项目中用 MemoryStream 的时候意外发现 ReadAsync 方法多了一个返回 ValueTask 的重载,真是日了狗了,一个 Task 已经够学了,又来一个 ValueTask,晕,方法签名如下: public class MemoryStream : S 阅读全文
posted @ 2020-11-10 12:03 一线码农 阅读(2586) 评论(11) 推荐(15)
摘要:一:背景 1. 讲故事 最近在翻 netcore 源码看,发现框架中有不少的代码都被 ref 给修饰了,我去,这还是我认识的 ref 吗?就拿 Span 来说,代码如下: public readonly ref struct Span<T> { public ref T GetPinnableRef 阅读全文
posted @ 2020-11-07 09:21 一线码农 阅读(5681) 评论(10) 推荐(29)
摘要:一:背景 1. 讲故事 每次项目预交付的时候,总会遇到各种奇葩的坑,我觉得有必要梳理一下以及如何快速解决的,让后来人避避坑,这篇就聊聊自己的所闻所遇: 我去,本地环境代码跑的哧溜,上了测试环境出问题 我去, 第三方提供的 dll 跑出 bug 了 二:两个大坑的解决方案 1. 本地环境没问题,上了测 阅读全文
posted @ 2020-11-04 09:45 一线码农 阅读(4397) 评论(20) 推荐(41)
摘要:一:背景 1. 讲故事 上周有一个项目交付,因为是医院级项目需要在客户的局域网独立部署。 程序: netcore 2.0,操作系统: windows server 2012,坑爹的事情就来了, netcore sdk 一直装不上,网上找了资料说需要先安装 Visual C++ Redistribut 阅读全文
posted @ 2020-11-02 09:56 一线码农 阅读(3960) 评论(8) 推荐(11)
摘要:一:背景 1. 讲故事 昨天在园里的编辑头条看到 精致码农大佬 写的一篇题为:[C#.NET 拾遗补漏]10:理解 volatile 关键字 (https://www.cnblogs.com/willick/p/13889006.html) 的文章,大概就是说在 多线程环境下,一个在debug不出现 阅读全文
posted @ 2020-10-30 18:40 一线码农 阅读(2084) 评论(10) 推荐(29)
摘要:一:背景 1. 讲故事 前段时间写了几篇 C# 漫文,评论留言中有很多朋友多次提到 Span,周末抽空看了下,确实是一个非常🐂👃的新结构,让我想到了当年的WCF,它统一了.NET下各种零散的分布式技术,包括:.NET Remoteing,WebService,NamedPipe,MSMQ,而这里 阅读全文
posted @ 2020-10-26 09:40 一线码农 阅读(5048) 评论(8) 推荐(31)
摘要:一:背景 1. 讲故事 大家在经过面向对象洗礼的时候,都了解过接口,而且知道它是一种自上而下的设计思路,举个例子,我们电脑上都有 USB 2.0 接口,蓝牙耳机实现了它可以进行充电,移动硬盘实现了它可以在电脑端显示硬盘内容,蓝牙鼠标实现了它可以进行鼠标操控,可以看出USB插口做出来后,谁来实现谁也搞 阅读全文
posted @ 2020-10-24 09:03 一线码农 阅读(3356) 评论(20) 推荐(10)
摘要:一:背景 1. 讲故事 前段时间和同事负责一个项目的两个业务模块,可能大家缺少沟通,导致本该定义一个 Enum 的地方结果我俩各自定义了一个,导致后面这两个 Enum 进行对接就烦了,为了方便理解,也不想让大家看这崴脚的英文拼写,我就拿 银行 举例吧。 A同事 定义的枚举 public enum B 阅读全文
posted @ 2020-10-21 09:30 一线码农 阅读(4005) 评论(14) 推荐(21)
摘要:一:背景 1. 讲故事 前几天群里有一位朋友聊到,为什么我在 Action 中执行一句 Response.Write 之后,后续的 View 就不呈现了,如果脑子中没有画面,那就上测试代码: public class HomeController : Controller { public IAct 阅读全文
posted @ 2020-10-20 08:57 一线码农 阅读(1566) 评论(2) 推荐(14)
摘要:一:背景 1. 讲故事 最近发现 C#7 之后的 is 是越来越看不懂了,乍一看花里胡哨的,不过当我静下心来仔细研读,发现这 is 是越来越短小精悍,而且还特别语义化,那怎是一个爽字了得😄,这一篇就和大家简单聊一聊。 二:C#7 之前的 is 如何使用 1. 类型兼容性检测 相信学过 C# 的朋友 阅读全文
posted @ 2020-09-30 11:26 一线码农 阅读(14131) 评论(34) 推荐(46)
摘要:一:背景 1. 讲故事 昨天在 StackOverflow 上看到一个很有趣的问题,说: 你会几种遍历字典的方式,然后跟帖就是各种奇葩的回答,挺有意思,马上就要国庆了,娱乐娱乐吧,说说这种挺无聊的问题😄😄😄。 二: 使用 foreach 遍历 为了方便演示,先上一段测试代码: var dict 阅读全文
posted @ 2020-09-28 09:35 一线码农 阅读(3954) 评论(6) 推荐(8)
摘要:一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5]) 哈哈,熟悉又陌生,玩过python的朋友对这个 [0..5] 太熟悉不过了,居然在 C# 中也 阅读全文
posted @ 2020-09-23 10:27 一线码农 阅读(11555) 评论(37) 推荐(36)
摘要:一:背景 1. 讲故事 前段时间搞了一个地方性民生资讯号,资讯嘛,都是我抄你的,你抄官媒的,小市民都喜欢奇闻异事,所以就存在一个需求,如何去定向抓取奇闻异事的地方号上的新闻,其实做起来很简单,用逻辑回归即可,这篇主要讨论如何去抓取,在 C# 中大家都知道抓取通用的库是 HtmlAgilityPack 阅读全文
posted @ 2020-09-22 09:46 一线码农 阅读(5810) 评论(28) 推荐(42)
摘要:一:背景 1. 讲故事 前几天在写一个api接口,需要对衣物表进行分页查询,查询的output需要返回两个信息,一个是 totalCount,一个是 clothesList,在以前我可能需要封装一个 PagedClothes 类,如下代码: public class PagedClothes { p 阅读全文
posted @ 2020-09-17 10:07 一线码农 阅读(1100) 评论(5) 推荐(6)
摘要:一:背景 1. 讲故事 前几天看同事在用 linq 给内存中的两个 model 做左连接,用过的朋友都知道,你一定少不了一个叫做 DefaultIfEmpty 函数,这玩意吧,本来很流畅的 from...in...join, 突然搞进来这么一个函数,真的是恶心他妈给恶心开门,恶心到家了,简化后的代码 阅读全文
posted @ 2020-09-07 09:56 一线码农 阅读(7317) 评论(30) 推荐(63)
摘要:一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient,Scoped,挺有意思,这篇就来聊一聊这一话题,自从 core 中有了 ServiceCollect 阅读全文
posted @ 2020-09-01 09:38 一线码农 阅读(14416) 评论(16) 推荐(57)
摘要:一:背景 1. 讲故事 .NET5 终于在 2020-08-25 也就是大前天发布了第八个预览版,这么多的预览版搞得我都麻木了,接踵而来的就是更多的新特性加入到了 C# 9 中,既然还想呆在这条船上,得继续硬着头皮学习哈,这一篇跟大家聊聊新增的几个关键词。 二:新增关键词 1. init 出来一个新 阅读全文
posted @ 2020-08-28 07:15 一线码农 阅读(7331) 评论(51) 推荐(24)
摘要:一:背景 1. 讲故事 18年的时候在做纯内存项目的过程中遇到了这么一个问题,因为一些核心数据都是飘在内存中,所以内存空间对我们来说额外宝贵,但偏偏项目中有些数据需要缓存,比如说需要下钻的报表上的点,基于性能的考虑,不希望采用独立的缓存中间件,比如 redis, mongodb,毕竟再怎么滴还是要走 阅读全文
posted @ 2020-08-23 10:46 一线码农 阅读(2282) 评论(4) 推荐(3)
摘要:一:背景 1. 讲故事 记的在上一家公司做全内存项目的时候,因为一些关键表会在程序 startup 的时候全量灌入到内存中,但随着时间的推移,内存和数据库的同步偶尔会出现数据差异的情况,伴随着就是运营那边报过来的 bug,检查数据库的数据完整性很简单,直接写一些 sql 验证一下就好了,但校验内存中 阅读全文
posted @ 2020-08-19 09:54 一线码农 阅读(1969) 评论(7) 推荐(10)
摘要:一:背景 1. 讲故事 前段时间将公司的一个项目从 4.5 升级到了 framework 4.8 ,编码的时候发现 Enumerable 中多了三个扩展方法: Append, Prepend, ToHashSet,想必玩过jquery的朋友一眼就能看出这三个方法的用途,这篇就和大家一起来聊聊这三个方 阅读全文
posted @ 2020-08-14 09:35 一线码农 阅读(1414) 评论(4) 推荐(4)