myesn

myEsn2E9

hi
github

CSharp

cover
cover
cover

CSharpier 代码格式化工具

在 Visual Studio 中,一般通过默认的快捷键 Ctrl + K + D 来格式化当前文件中的所有内容。 与我自己而言,代码的格式化非常重要,它影响着我的阅读体验。但是,与我工作的一些同事和一些公司老人,他们并不会特别在意代码的格式问题,这就让我有点无语了…
cover
cover
cover
cover

安装 Playwright for .NET

Warning 虽然安装过程是通用的,但本文主要面向 Windows 用户。 在要安装 Playwright 的目标项目中执行以下操作: 为指定的项目安装 Playwright 依赖: Copy dotnet add package Microsoft…
.NET 编码模式
此模式应用于 Microsoft.Extensions.* 和 Microsoft.AspNetCore.*。思路是,可以使用泛型类型作为工厂而不是函数。泛型的参数就是要实例化的类型。比如,我们有一个 IServiceFactory<TService>,那么可以从 DI…
C#: global usings
从 .NET 6 和 C# 10 开始支持 global using(全局引用)指令,它在整个项目中都有效。 为避免造成混乱,在项目中单独创建一个 GlobalUsings.cs,接着在里面声明 global using 指令,比如: Copy global using…
C#: 找到调用链中值为 null 的成员
Copy var x = A?.B?.C?.D?.E; 如果 A、B、C、D 或 E 中的任何一个为 null,则 x 将被计算为 null。 那么,有没有办法找到哪个成员的值为 null? 对每个成员使用一系列条件检查: Copy String findNullMember…
[未完成]C#: 异步返回类型(Async return types)
异步方法可以具有以下返回类型: Task:对于执行操作但不返回任何值的异步方法。 Task:对于返回值的异步方法。 void:对于事件处理程序。 任何具有可访问的 GetAwaiter 方法的类型。由 GetAwaiter 方法返回的对象必须实现 System.Runtime…
C#: 异步编程场景(Asynchronous programming scenarios)
如果有 I/O-bound 需求(例如从网络请求数据、访问数据库、读取和写入文件系统),则需要使用异步编程(Asynchronous programming)。或者有 CPU-bound 代码(例如执行昂贵的计算),也是编写异步代码的好场景。 Info 💡 "bound…
cover
cover

C#: Task 异步编程模型(Task asynchronous programming model)

使用异步编程可以避免性能瓶颈,提高应用程序的整体响应速度。然而,传统的编写异步应用程序的技术可能会很复杂,使其难以编写、调试和维护。 C# 支持简化的方法,即异步编程,它利用了 .NET 运行时(runtime)的异步支持。编译器完成了开发人员过去要做的艰巨工作…
cover
cover
cover

C#: 异步编程与 async 和 await(Asynchronous programming with async and await)

Task 异步编程模型(TAP)为异步代码提供了一种抽象。我们可以像往常一样按照顺序编写代码,每个语句看起来都会在下一个语句开始之前完成 **。编译器会进行许多转换,因为其中一些语句可能会启动工作并返回表示正在进行的工作的 Task。 这种语法的目标是使代码读起来像一连串语句…
[未完成] C#: 表达式树基础
表达式树的创建有 Lambda 法 和 组装法 学习表达式树需要 委托、Lambda、Func<> 基础 表达式形状可以参考二叉树 1. 表达式树基础・C# 表达式树教程大全 - 痴者工良 (whuanle.cn) Lambda 表达式 - Lambda…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

C#: .NET 并行编程(TPL)

本文旨在深入了解多线程、异步、任务、和并行计算,它们统称为并行编程(Task Parallel Library)。 多线程和异步是两个不同的概念,如果分不清就容易写出以下错误代码: Copy void button1_Click() { new Thread(() =>…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.