刷新
聊一聊 .NET高级调试 中的一些内存术语

博主头像 一:背景 1. 讲故事 在高级调试的旅程中,经常会有一些朋友问我什么是 工作集(内存),什么是 提交大小,什么是 Virtual Size, 什么是 Working Set 。。。截图如下: 既然有很多朋友问,这些用口头也不怎么好描述,刚好上午有时间就系统的聊一下吧。 二:内存术语解读 1. Vir ...

机器学习常见的推荐算法(.net)

博主头像 推荐算法是机器学习和数据挖掘领域的重要组成部分,用于为用户提供个性化推荐内容。在.NET中,可以使用不同的算法来实现推荐系统。在本文中,我将介绍三种常见的推荐算法:协同过滤、内容过滤和深度学习推荐系统,并提供相应的.NET源代码示例。 协同过滤推荐算法 协同过滤算法基于用户行为数据,通过分析用户之间 ...

.net中优秀依赖注入框架Autofac看一篇就够了

博主头像 Autofac 是一个功能丰富的 .NET 依赖注入容器,用于管理对象的生命周期、解决依赖关系以及进行属性注入。本文将详细讲解 Autofac 的使用方法,包括多种不同的注册方式,属性注入,以及如何使用多个 ContainerBuilder 来注册和合并组件。我们将提供详细的源代码示例来说明每个概念 ...

.net 下优秀的DI框架推荐,看看你用过几个?

博主头像 在.NET生态系统中,有许多出色的依赖注入(DI)框架可供选择。每个框架都有其独特的特点和优点,可以根据项目需求和偏好进行选择。下面详细介绍一些.NET中优秀的DI框架,它们的优点以及适用场景。 1、Microsoft.Extensions.DependencyInjection: 官方支持:Mic ...

环形缓冲区 Ring Buffer 的实现

博主头像 环形缓冲区(Circular Buffer 或 Ring Buffer)是一种数据结构,它在逻辑上形成一个闭环。这种结构非常适用于需要固定大小的缓冲区的情况,如音频处理、网络通信、实时数据传输等。环形缓冲区的主要特点和用途包括: 固定大小:环形缓冲区的大小在创建时确定,并且在其生命周期内保持不变。 ...

通过Span实现高性能数组,实例解析

博主头像 Span<T> 是 C# 7.2 引入的一个强大的数据结构,用于表示内存中的一块连续数据。它可以用于实现高性能的数组操作,而无需额外的内存分配。在本文中,我将详细介绍如何使用 Span<T> 来实现高性能数组操作,并提供一些示例代码来说明其用法。 什么是 Span? Span<T> 是 System ...

程序开发中常用的10种算法,你用过几种?

博主头像 当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。 1. 冒泡排序 (Bubble Sort): 冒泡排序是一种简单的比较排序算法,它多次遍历数组,将较大的元素逐渐浮动到数组的末尾。 public static void Bubb ...

C#中out关键字

博主头像 简介 在C#中可以使用out关键字,指定所给的参数是一个输出参数。out关键字的使用方式与ref关键字相同,都是在函数定义和函数调用中用作参数的修饰符。 一个使用out关键字的例子 internal class Program { static void Main(string[] args) { ...

仅需三行代码! C# 快速实现PDF转PPT

博主头像 一般在会议、教学或培训活动中,我们都会选择PPT文档来进行内容展示。与PDF文档相比,PPT文档具有较强的可编辑性,可以随时增删元素,并且还可以设置丰富多样的动画效果来吸引观众注意。那么如何通过C#将PDF文档转为PPT文档呢?本文将教大家仅使用3行代码就实现这一功能。 PDF转PPT所需工具: S ...

C# 开发桌面应用简单介绍

博主头像 一. C#使用场景介绍 C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。 二. 开发流程 1. 创建项目:打开Visual Studio后右侧选择“创建新项目”,然后选择“C# Win ...

编程技巧 --- VS如何调试.Net源码

博主头像 引言 如题,在VS中如何调试 .Net 源码呢? 一般来说,VS2022,都是默认启用 F12 转到定义能够看到源码,如果大家发现自己无法使用 F12 查看源码,可以在 "工具" -> "选项" -> "文本编辑器" -> "C#" -> "高级" -> "转到定义",勾选所有选项就对了。 但是光以 ...

.NET领域性能最好的对象映射框架Mapster使用方法

博主头像 Mapster是一个开源的.NET对象映射库,它提供了一种简单而强大的方式来处理对象之间的映射。在本文中,我将详细介绍如何在.NET中使用Mapster,并提供一些实例和源代码。 和其它框架性能对比: Mapster的安装和配置: 首先,打开Visual Studio并创建一个新的.NET项目。 在 ...

对 .NET程序2G虚拟地址紧张崩溃 的最后一次反思

博主头像 一:背景 1. 讲故事 最近接连遇到了几起 2G 虚拟地址紧张 导致的程序崩溃,基本上 90% 都集中在医疗行业,真的很无语,他们用的都是一些上古的 XP,Windows7 x86,我也知道技术人很难也基本无法推动硬件系统和设备的升级,这里蕴含了巨大的人情世故。 写这一篇的目的是想系统化的整理一下如 ...

23种设计模式

博主头像 设计模式(design pattern)是软件工程中的一种重要技术,它是在特定的上下文环境中,为解决特定问题而采用的一种通用的解决方案。设计模式可以帮助软件工程师提高代码的可复用性、可维护性和可扩展性。 23 种常见设计模式可以分为以下几类: 创建型模式:这些模式用于创建对象,包括工厂方法模式、抽象 ...

Unity学习笔记--数据持久化XML文件(1)

博主头像 XML相关 Xml是可拓展标记语言,一种文件格式。我们使用xml来完成对数据持久化的存储。等待我们有一程序运行结束之后,将内存中的数据进行保存,(保存在硬盘/服务器)实现对数据的持久化存储。 xml文件的读取和保存以及修改 要点: XMl文件的加载 XML文件节点的查找访问 XML文件节点内容的读取 ...

Unity学习笔记--数据持久化之PlayerPrefs的使用

博主头像 数据持久化 PlayerPrefs相关 PlayerPrefs是Unity游戏引擎中的一个类,用于在游戏中存储和访问玩家的偏好设置和数据。它可以用来保存玩家的游戏进度、设置选项、最高分数等信息。PlayerPrefs将数据存储在本地文件中,因此可以在游戏重新启动时保持数据的持久性。 //Player ...

<1···2021