摘要:
编写 C# 代码时,我们时常会用到很大的数字,例如下面定义的变量: const long loops = 50000000000; 您能快速读出这是多少吗?是不是还是会有很多人把光标定位到最后一位,然后按键盘上的向左键一个一个往上数:个、十、百、千、万、十万、百万、千万、亿、十亿、百亿、千亿…… 数 阅读全文
摘要:
正式宣布: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 团队的项目群经理。 阅读全文
摘要:
在之前的文章中我们介绍了 C# 中的 只读结构体(readonly struct)1 和与其紧密相关的 in 参数2。 今天我们来讨论一下从 C# 8 开始引入的一个特性:可变结构体中的只读实例成员(当结构体可变时,将不会改变结构体状态的实例成员声明为 readonly)。 引入只读实例成员的原因 阅读全文
摘要:
in 修饰符也是从 C# 7.2 开始引入的,它与我们上一篇中讨论的 《C# 中的只读结构体(readonly struct)》1 是紧密相关的。 in 修饰符 in 修饰符通过引用传递参数。 它让形参成为实参的别名,即对形参执行的任何操作都是对实参执行的。 它类似于 ref 或 out 关键字,不 阅读全文
摘要:
在本文中,我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。 阅读全文
摘要:
翻译自 John Demetriou 2018年8月4日 的文章 《C# 8: Default Interface Methods》1,补充了一些内容 C# 8 之前 今天我们来聊一聊默认接口方法。听起来真的很奇怪,不是吗?接口仅用于定义契约。接口的实现类会拥有一组公共方法,不过实现类被赋予了以其自 阅读全文
摘要:
多重继承的一个大问题就是菱形问题,由于菱形问题,Java 和 C# 都不允许多重继承。 阅读全文
摘要:
目前为止,Hat 运算符(^)已经被用作布尔类型的异或运算符,以及字节、整型类型的按位异或运算符。在 C# 8 中,它有一个新的用法。这个运算符的新用法是自动创建 Index 结构体的实例。 阅读全文
摘要:
Range 结构体表示具有起始索引和结束索引的范围。索引(Index)和范围(Range)为访问序列中的单个元素或范围提供了简洁的语法。 阅读全文
摘要:
在 C# 中利用 ValueTask 避免从异步方法返回 Task 对象时分配。经验法则是这样的:当您有一段代码总是异步的时,即当操作(总是)不能立即完成时,请使用 Task。当异步操作的结果已经可用时,或者当您已经缓存了结果时,请利用 ValueTask。不管怎样,在考虑使用 ValueTask 之前,您都应该执行必要的性能分析。 阅读全文
摘要:
翻译自 Manju lata Yadav 2019年6月2日 的博文 《Difference Between Struct And Class In C#》,补充了一些内容和示例。 结构体(struct)是类(class)的轻量级版本。结构体是值类型,可用于创建行为类似于内置类型的对象。 比较 结构 阅读全文
摘要:
本文的目的是:通过使用 DockerHub 和 Azure Kubernetes Service (AKS) 将之前使用 .NET 和 Docker 构建的微服务部署到微软 Azure 云上,来介绍微服务的基本部署过程。 阅读全文
摘要:
本文翻译自.NET官网 .NET Tutorial - Hello World Microservice 介绍 本文的目的是:通过创建一个返回列表的简单服务,并在 Docker 容器中运行该服务,让您熟悉使用 .NET 创建微服务的构建过程。 安装 .NET SDK 要开始构建 .NET 应用程序, 阅读全文
摘要:
应用场景介绍 在我们使用一些开源项目时,基本上都会在每个源代码文件的头部看到一段版权声明。一个项目或解决方案中源代码文件的个数少则几十,多则几千甚至更多,那么怎么才能给这么多文件方便地批量添加或者修改一致的文件头呢?在 2020 年 8 月 11 日 更新的 Visual Studio 2019 v 阅读全文
摘要:
C# 9.0 已于 2020年11月10日 正式发布了,请点击链接转至 C# 9.0 正式发布了(C# 9.0 on the record) 阅读最新版内容。 https://www.cnblogs.com/ittranslator/p/13961608.html 翻译自 Mads Torgerse 阅读全文
摘要:
翻译自 Stephen Toub 2011年10月24日的博文《Task.Run vs Task.Factory.StartNew》,Stephen Toub 是微软并行计算平台团队的首席架构师。 在 .NET 4 中,Task.Factory.StartNew 是安排新任务的首选方法。它有许多重载 阅读全文
摘要:
Kubernetes 提供了许多缩放、联网、保护和维护您的容器化应用程序的工具,这些工具超出了容器本身的能力。Kubernetes 中的所有容器都被安排为 pods,即共享一些资源的位于同一位置的容器组。此外,在实际的应用程序中,我们几乎从不创建单独的 pod;相反,我们的大部分工作负载被安排为部署(deployments),部署是由 Kubernetes 自动维护的可缩放的 pods 组。 阅读全文
摘要:
容器化流程的可移植性和可再现性意味着我们有机会跨云和数据中心移动和缩放我们的容器化应用程序。容器有效地保证了这些应用程序在任何地方都以相同的方式运行,从而使我们能够快速、轻松地利用所有这些环境。此外,随着应用程序规模的扩大,我们需要一些工具来帮助自动化这些应用程序的维护,能够自动替换失败的容器,并在 阅读全文
摘要:
卷(volumes) 和 绑定挂载(bind mounts) 允许您在主机和容器之间共享文件,这样即使在容器停止后也可以持久存储数据。 如果在 Linux 上运行 Docker,那么还有第三种选择:tmpfs 挂载。当您创建带有 tmpfs 挂载的容器时,容器可以在容器的可写层之外创建文件。 与卷和 阅读全文
摘要:
绑定挂载(bind mounts)在 Docker 的早期就已经出现了。与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录将挂载到容器中。文件或目录由其在主机上的完整或相对路径引用。相反地,当您使用卷时,在主机上 Docker 的存储目录中创建一个新目录,Docker 管理该目录的 阅读全文