刷新
WinDbg学习三(字符串通配符语法)

博主头像 说明 星号(*) 代表零个或多个字符。 问号(?) 代表任意单个字符。 包含字符列表的方括号( [ ] ) 代表列表中的任何单个字符。 恰好匹配列表中的一个字符。 在这些括号内,您可以使用连字符 (-) 指定范围。 例如,Prog[er-t7]am 匹配“Progeam”、“Program”、“Pr ...

物联网浏览器(IoTBrowser)-Web串口自定义开发

博主头像 物联网浏览器(IoTBrowser)-Web串口自定义开发 工控系统中绝大部分硬件使用串口通讯,不论是原始串口通讯协议还是基于串口的Modbus-RTU协议,在代码成面都是使用System.IO.Ports.SerialPort开发,常用的函数包括打开串口、关闭、接收数据、写入(发送)数据。IoTB ...

C# 语言笔记

博主头像 1. C# 初识 因为先前已经学过 C++ 了,所以在C# 的学习中,大多只记录和 C++ 不同的点,在学习的过程中,感谢刘铁猛老师的教程,您是我C# 入门的领路人。 1.1 使用 .net cli 1.1.1 使用 VSCode 创建 C# 工程 先安装 C# 相关插件 创建新工程 dotnet ...

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 ...

<1···567···28>