刷新
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析

博主头像 C# Methods 方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。 创建一个方法 方法的定义以方法的名称开头,后跟括号()。C#提供了一些预定义的方法,您已经熟悉,例如 ...

WinDbg学习二(符号)

博主头像 在开始使用WinDbg之前,我们需要设置一下符号。 简介 符号文件包含大量的数据,比如全局变量,局部变量,源行号,这些数据在运行二进制文件时实际上并不需要,但在调试过程中很有用,比如我们写.net程序时生成的PDB文件。 符号可以包括名称、类型(如果适用)、存储地址或寄存器以及任何父符号或子符号。 ...

C#析构函数解析:资源管理的精要和使用技巧

博主头像 在C#中,析构函数(Destructor)是一个特殊的方法,用于清理对象占用的资源。它是由垃圾回收器在对象被销毁时自动调用的。析构函数的原理是在对象即将被回收时执行一些清理操作,例如释放非托管资源或执行一些对象销毁前的必要操作。 析构函数的基本原理: 调用时机: 当对象被垃圾回收器回收时,析构函数会 ...

C# 线程本地存储 为什么线程间值不一样

博主头像 一:背景 1. 讲故事 有朋友在微信里面问我,为什么用 ThreadStatic 标记的字段,只有第一个线程拿到了初始值,其他线程都是默认值,让我能不能帮他解答一下,尼玛,我也不是神仙什么都懂,既然问了,那我试着帮他解答一下,也给后面类似疑问的朋友解个惑吧。 二:为什么值不一样 1. 问题复现 为了 ...

【mq】RabbitMq批量删除队列

博主头像 RabbitMq批量删除队列 ​ 由于部分公司同事使用RabbitMq时,没有将Client设置为autodelete,导致大量冗余队列。其中这些队列又是无routekey队列,收到了批量的订阅消息,占用服务器内存。 ​ 如何将这些无用的队列删除成为一个问题?经过多次摸索,在rabbitmq man ...

C# 循环与条件语句详解

博主头像 C# Switch 语句 使用 switch 语句选择要执行的多个代码块中的一个。 示例: switch(expression) { case x: // 代码块 break; case y: // 代码块 break; default: // 代码块 break; } 它的工作方式如下: 评估 s ...

c#使用Hook钩子全局监听键盘和鼠标

博主头像 背景:今天接到客户一个需求,就是在收银员在用扫码枪扫顾客会员码或者微信付款码的时候判断用户有没有加企微好友和进企微群,然后根据这个状态进行语音播报,判断顾客能不能享受优惠价。关键难点就是用户用的收银系统是别家的,线上小程序用的是我们家的,两家不互通,所以立即决定采用Hook钩子技术做一工具挂在其他收 ...

C#使用WhisperNet实现语音识别功能

C#使用WhisperNet实现语音识别功能 1.写在前面 最近想做一下本地音频语音识别工具,在网上找了一些本地音频语音识别方面的资料。 Whisper 是 OpenAI 的一种自动最先进的语音识别系统,它已经接受了 680000 小时从网络收集的多语言和多任务监督数据的训练。这个庞大而多样化的数据 ...

C# 布尔值和条件语句:入门指南和实用示例

博主头像 C# 布尔值 在编程中,通常需要一个只能有两个值之一的数据类型,比如: 是 / 否 开 / 关 真 / 假 为此,C# 有一个 bool 数据类型,可以取 true 或 false 的值。 布尔值 使用 bool 关键字声明布尔类型,只能取 true 或 false 的值: 示例: bool isC ...

改一个对象类型,for循环耗时从3000毫秒下降到1毫秒

博主头像 概述:在C#中,字符串连接有两种实现方法:使用`+`运算符和使用`StringBuilder`。前者在每次连接时都会创建新的字符串对象,效率较低。后者通过内部管理字符数组,避免了频繁的内存分配和垃圾回收,因此性能更高。在处理大量字符串连接时,使用`StringBuilder`可以显著提高性能。这两种 ...

.NET字符串内存管理:常量字符串、动态创建和字符串池的巧妙结合

博主头像 在 .NET 中,字符串是不可变的,这意味着一旦创建,字符串的内容就不能被修改。字符串在内存中以不同的方式存储,具体取决于它是常量字符串还是动态创建的字符串。 常量字符串 常量字符串在编译时就被解析,并在程序的元数据(Metadata)中存储。多个相同的字符串常量可能会共享同一块内存。 string ...

记一次 .NET某道闸收费系统 内存溢出分析

博主头像 一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序几天内存就要爆一次,不知道咋回事,找不出原因,让我帮忙看一下,这种问题分析dump是最简单粗暴了,拿到dump后接下来就是一顿分析。 二:WinDbg 分析 1. 程序为什么会暴 程序既然会爆,可能是虚拟地址受限,也可能是系统内存不足,可以用 ...

C#实例方法和静态方法有区别吗?各自的优缺点有哪些?

博主头像 实例方法和静态方法之间有几个关键的区别: 1. 实例方法: 关联对象: 实例方法是与对象实例相关联的,必须通过实例来调用。 this 关键字: 实例方法中可以使用 this 关键字引用当前实例。 访问实例成员: 实例方法可以直接访问和修改实例的字段、属性和其他成员。 生命周期: 实例方法的生命周期与 ...

<1···567···29>