kitlau
kitlau

kitlau's blog

dotnet


如何使用 AnduinOS 愉快的开发 .NET

本文详细介绍了如何通过VSCode在AnduinOS上愉快地开发.NET应用,并分享了一些实用插件的配置经验。文章从C# Dev Kit、Roslynator等核心插件的功能与使用限制谈起,探讨了微软许可证政策对开发者的影响,同时对比了Jetbrains Rider的部分功能。此外,还介绍了C# XML Documentation Comments和C# Namespace Autocompletion等提升编码效率的小工具,并提到GitHub Copilot的订阅价格问题。最后,作者总结了自己的配置经验,并邀请读者分享更多建议。--DeepSeek

.NET C# VSCode AnduinOS dotnet vscode-plugins github-copilot development-environment

一幅漫画解释 .NET 垃圾收集(GC)原理

本文通过一幅漫画科普了 .NET 垃圾收集(GC)的基本原理,并结合实际工作中的观察,指出了国内普通开发者对基础知识掌握不足的问题。作者认为,虽然当前工作环境可能将开发者视为流水线代码工,但从性能优化的角度切入学习仍是一个值得探索的方向,而减少 GC 压力则是 .NET 性能优化的重要切入点。 漫画来自 Redgate 的经典科普内容,尽管该内容主要针对 .NET Framework 时代,但其核心原理在现代 .NET 中依然适用。作者分享了这幅漫画的翻译,并提到了大对象堆(LOH)压缩问题的一个解决方案:将 GCSettings.LargeObjectHeapCompactionMode 设置为 CompactOnce。然而这一方案仅能在一个 GC 周期内生效,本质上回到了手动内存管理的方式,这也引发了对如何有效管理和优化 LOH 的进一步思考。 这篇文章不仅帮助开发者理解 .NET GC 的基本机制,还通过实际案例展示了性能优化的复杂性。对于想要深入了解 .NET 内存管理、GC 机制以及性能优化的同学来说,本文是一个不错的起点。你是否也曾在工作中遇到过因 GC 压力导致的性能问题?如何在现代 .NET 环境中更好地管理和优化 LOH 呢?这些问题值得每一位开发者深入思考和探索。--DeepSeek

.NET dotnet garbage collection performance optimization large object heap comic translation

什么是异步?异步就是多线程吗?异步就是 async、await 吗?

这篇文章详细介绍了C#异步编程的基础知识及其应用场景。首先,文章解释了`async`和`await`关键字的基本使用方法,并展示了如何在控制台应用程序中实现异步方法。接着,文章讨论了不返回值的异步方法以及如何处理这种情况。然后,通过对比同步与异步执行方式,文章强调了异步编程在提升程序性能和用户体验方面的重要性。 文章还详细介绍了如何先调用异步方法后`await`其结果,以实现多个任务的同时运行,并展示了这种方法的优势。此外,作者解释了不使用`async`修饰符的异步方法的实现方式,包括使用`Task.``FromResult()`和`Task.CompletedTask`来返回结果。 最后,文章介绍了如何通过`Task.WhenAll()`同时等待多个任务完成,以避免阻塞和提高效率。整篇文章旨在帮助开发者理解异步编程的基本概念和应用场景,并提供了一些实用的代码示例来说明这些概念。--DeepSeek

C# dotnet Async Await Task Parallelism Multithreading Task

彻底理解 ASCII Unicode UTF-8 UTF-32 是什么以及区别与联系

字符编码与Unicode是一个复杂而重要的计算机科学基础概念,理解它们的内在逻辑对于软件开发和数据处理至关重要。文章详细解释了ASCII、Unicode以及UTF-8等编码方案的基本原理及其实际应用。文章指出,Unicode是一个包含所有字素的通用字符集,而UTF-8是其最常见的编码方式,用于将Unicode代码点转换为二进制形式。不同编程语言在字符串长度计算上表现出差异,例如Python和C#默认使用不同的编码策略(如UTF-16),而Go则直接返回UTF-8字节数。文章还强调了开发者需要理解这些底层机制以避免潜在问题,并建议根据具体情况选择合适的处理方法(如"不可感知Unicode的函数"、"可感知Unicode的函数"或"可感知字素的函数")。此外,文章提到应试教育中常将字符代码与编码方案混为一谈,实际上它们是两个不同的概念。为了帮助读者深入理解,文章推荐了一个在线资源链接,并总结了ASCII与Unicode的区别及其在不同编码策略下的表现。 最终结论:理解字符编码和Unicode的内在机制是开发者必备的核心技能之一,掌握这些知识能够有效避免因编码问题导致的各种麻烦。--DeepSeek

dotnet ASCII Unicode UTF 8 Go Programming Language Character Encoding

  • 1