摘要:在 2020 年的最后一天,博客园发起了一个开源项目:基于 .NET 的博客引擎 fluss,我抽空把源码下载下来看了下,发现在属性的定义中,有很多地方都用到了 null!,如下图所示: 这是什么用法呢?之前没有在项目中用过,所以得空就研究了一下。 以前,! 运算符用来表示 “否”,比如不等于 != 阅读全文
posted @ 2021-01-12 12:06 技术译民 阅读(1833) 评论(13) 推荐(12) 编辑
摘要:正式宣布:C# 9.0 发布了! 要学习C# 9.0,看这篇就对了。对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。翻译自 Mads Torgersen 2020年11月10日的博文《C# 9.0 on the record》,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团队的项目群经理。 阅读全文
posted @ 2020-11-12 09:08 技术译民 阅读(3756) 评论(12) 推荐(32) 编辑
摘要:翻译自 Camilo Reyes 2018年10月15日的文章 《Working with the Dynamic Type in C#》 1 .NET 4 中引入了动态类型。动态对象使您可以处理诸如 JSON 文档之类的结构,这些结构的组成可能要到运行时才能知道。在本文中,Camilo Reyes 阅读全文
posted @ 2021-01-21 14:01 技术译民 阅读(332) 评论(2) 推荐(7) 编辑
摘要:在 2020 年的最后一天,博客园发起了一个开源项目:基于 .NET 的博客引擎 fluss,我抽空把源码下载下来看了下,发现在属性的定义中,有很多地方都用到了 null!,如下图所示: 这是什么用法呢?之前没有在项目中用过,所以得空就研究了一下。 以前,! 运算符用来表示 “否”,比如不等于 != 阅读全文
posted @ 2021-01-12 12:06 技术译民 阅读(1833) 评论(13) 推荐(12) 编辑
摘要:这是一段古老的代码,也是我以前经常用到的代码。虽然现在和以后基本上都不会再用到它了,但是在特定的场景中,它很好用。 使用场景 有时候,我们需要编写一个具有一定处理逻辑的控制台程序,这比编写 Windows 服务要简单一些。但是,我们要防止不小心点击到控制台窗口右上角的关闭按钮而导致程序非正常退出。于 阅读全文
posted @ 2021-01-06 12:05 技术译民 阅读(519) 评论(0) 推荐(5) 编辑
摘要:翻译自 Kayla Cinnamon 2020年12月17日的文章《Getting Started with Windows Terminal》 1 安装 Windows Terminal(Windows 终端)有两个不同的版本:Windows Terminal2 和 Windows Termina 阅读全文
posted @ 2020-12-31 12:10 技术译民 阅读(550) 评论(0) 推荐(1) 编辑
摘要:.NET 是一个开源软件框架,用于在 Linux、Windows 和 macOS 上构建跨平台应用程序。WSL 上的 Ubuntu 允许您同时为 Ubuntu 和 Windows 构建和测试应用程序。这篇博客将演示如何在 WSL 上安装 .NET 开发栈,并构建一个简单的操作系统感知应用,然后在 Linux 和 Windows 上测试它。 阅读全文
posted @ 2020-12-29 12:11 技术译民 阅读(380) 评论(2) 推荐(3) 编辑
摘要:根据 .NET 官方文档的定义:ConcurrentDictionary<TKey,TValue> Class 表示可由多个线程同时访问的线程安全的键/值对集合。这也是我们在并发任务中比较常用的一个类型,但它真的是绝对线程安全的吗? 仔细阅读官方文档,我们会发现在文档的底部线程安全性小节里这样描述: 阅读全文
posted @ 2020-12-22 12:01 技术译民 阅读(2151) 评论(23) 推荐(31) 编辑
摘要:如果您想在最新的 Windows 版本中尝试经过改进的 Windows 子系统 Linux 2 (即 WSL 2),要怎么做呢?我们在本文中介绍了安装它所需要做的所有事情。WSL 2 是微软早在 2017 年推出的 WSL 的原始版本的重大升级。WSL 2 不仅仅是版本的升级。它更快、更通用,并且使用真正的 Linux 内核。未来的 Linux 内核更新甚至会以 Windows 10 软件更新的形式发布——想想看,这有点疯狂! 阅读全文
posted @ 2020-12-15 12:27 技术译民 阅读(1364) 评论(0) 推荐(1) 编辑
摘要:在《记 RDS MySQL 的一个大坑》中,我提到遇到超出 max_user_connections 的异常,真正的原因在于:使用 MySQL 官方提供的 MySql.Data 作为驱动程序连接 MySQL 数据库的时候,默认使用了连接池,才引发了这个问题。 阅读全文
posted @ 2020-12-09 09:42 技术译民 阅读(422) 评论(12) 推荐(2) 编辑
摘要:花了一个下午的时间,终于把一个 RDS MySQL 的一个大坑填上了,解决方法令人匪夷所思,绝对会让各位看官感到大吃一惊! 问题 最近应业务的需求,加了一个定时统计的任务,其中的算法很简单,只是需要大量的 CRUD 操作。 由于业务简单,且时效性要求不高,所以代码写起来若行云流水,一气呵成,本地测试 阅读全文
posted @ 2020-12-08 09:41 技术译民 阅读(1385) 评论(16) 推荐(5) 编辑
摘要:翻译自 Paul Ferrill 2020年9月1日的文章《Compare Docker vs. Podman for container management》 1 Docker 和 Podman 在管理容器方面提供了类似的功能,但是 Docker 的安全漏洞可能使 Podman 对于某些管理员来 阅读全文
posted @ 2020-12-04 12:22 技术译民 阅读(1043) 评论(1) 推荐(0) 编辑
摘要:翻译自 Chetansingh 2020年4月24日的博文《Docker Vs Podman》 1 容器化的一场全新革命是从 Docker 开始的,Docker 的守护进程管理着所有的事情,并成为最受欢迎和广泛使用的容器管理系统之一。 但是,请稍等!您真的会假设 Docker 是唯一有效的容器化方式 阅读全文
posted @ 2020-11-30 12:07 技术译民 阅读(1736) 评论(2) 推荐(4) 编辑
摘要:(本文目录) 今天我们来聊一聊 C# 中的本地函数。本地函数是从 C# 7.0 开始引入,并在 C# 8.0 和 C# 9.0 中加以完善的。 引入本地函数的原因 我们来看一下微软 C# 语言首席设计师 Mads Torgersen 的一段话: Mads Torgersen: 我们认为这个场景是有用 阅读全文
posted @ 2020-11-24 11:52 技术译民 阅读(801) 评论(4) 推荐(8) 编辑
摘要:编写 C# 代码时,我们时常会用到很大的数字,例如下面定义的变量: const long loops = 50000000000; 您能快速读出这是多少吗?是不是还是会有很多人把光标定位到最后一位,然后按键盘上的向左键一个一个往上数:个、十、百、千、万、十万、百万、千万、亿、十亿、百亿、千亿…… 数 阅读全文
posted @ 2020-11-17 12:08 技术译民 阅读(672) 评论(5) 推荐(7) 编辑
摘要:正式宣布:C# 9.0 发布了! 要学习C# 9.0,看这篇就对了。对于 C# 的每一个新版本,我们都在努力让常见编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。翻译自 Mads Torgersen 2020年11月10日的博文《C# 9.0 on the record》,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团队的项目群经理。 阅读全文
posted @ 2020-11-12 09:08 技术译民 阅读(3756) 评论(12) 推荐(32) 编辑
摘要:在之前的文章中我们介绍了 C# 中的 只读结构体(readonly struct)1 和与其紧密相关的 in 参数2。 今天我们来讨论一下从 C# 8 开始引入的一个特性:可变结构体中的只读实例成员(当结构体可变时,将不会改变结构体状态的实例成员声明为 readonly)。 引入只读实例成员的原因 阅读全文
posted @ 2020-11-11 13:10 技术译民 阅读(270) 评论(0) 推荐(0) 编辑
摘要:in 修饰符也是从 C# 7.2 开始引入的,它与我们上一篇中讨论的 《C# 中的只读结构体(readonly struct)》1 是紧密相关的。 in 修饰符 in 修饰符通过引用传递参数。 它让形参成为实参的别名,即对形参执行的任何操作都是对实参执行的。 它类似于 ref 或 out 关键字,不 阅读全文
posted @ 2020-11-03 13:10 技术译民 阅读(611) 评论(0) 推荐(5) 编辑
摘要:在本文中,我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。 阅读全文
posted @ 2020-10-28 16:19 技术译民 阅读(778) 评论(0) 推荐(5) 编辑
摘要:翻译自 John Demetriou 2018年8月4日 的文章 《C# 8: Default Interface Methods》1,补充了一些内容 C# 8 之前 今天我们来聊一聊默认接口方法。听起来真的很奇怪,不是吗?接口仅用于定义契约。接口的实现类会拥有一组公共方法,不过实现类被赋予了以其自 阅读全文
posted @ 2020-10-20 12:15 技术译民 阅读(940) 评论(4) 推荐(7) 编辑
摘要:多重继承的一个大问题就是菱形问题,由于菱形问题,Java 和 C# 都不允许多重继承。 阅读全文
posted @ 2020-10-20 09:19 技术译民 阅读(156) 评论(0) 推荐(0) 编辑
摘要:目前为止,Hat 运算符(^)已经被用作布尔类型的异或运算符,以及字节、整型类型的按位异或运算符。在 C# 8 中,它有一个新的用法。这个运算符的新用法是自动创建 Index 结构体的实例。 阅读全文
posted @ 2020-10-13 19:54 技术译民 阅读(442) 评论(0) 推荐(2) 编辑