刷新
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 关键字引用当前实例。 访问实例成员: 实例方法可以直接访问和修改实例的字段、属性和其他成员。 生命周期: 实例方法的生命周期与 ...

C#串口通讯实战:基础功能及高效数据传输

博主头像 概述:C#串口通讯示例展示了基本功能,包括打开/关闭串口、设置属性、发送和接收数据。通过SerialPort类实现,可根据需求扩展更复杂的串口通讯应用。 最近有项目应用到串口通讯,网上找到一个C#写的调试工具,如下图: 需要的文末可下载。下面我再讲一下串口通讯的基本应用: 在C#中进行串口通讯通常涉 ...

正确理解c# default关键字

博主头像 背景 最近QA测试一个我开发的一个Web API时,我意识到之前对C#的default的理解一直是想当然的。具体情况是这样,这个API在某些条件下要返回模型的默认值,写法类似于下面这样 [HttpGet(Name = "GetWeatherForecast")] public WeatherFore ...

SqlSugar入门

博主头像 SqlSugar入门 创建对象 你可以使用 SqlSugarClient (new模式)或者 SqlSugarScope (单例) 对数据库进行增、删、查、改等功能 注意:除了名字和使用模式不同,功能和API都一模一样 SqlSugarClient(new模式) 优点:性能比SqlSugarScop ...

记一次 .NET某MES自动化桌面程序 卡死分析

博主头像 一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的客户端程序卡死了,让我帮忙看下是什么原因导致的?dump也拿到了手,既然有了dump就开始正式分析吧。 二:WinDbg 分析 1. 什么导致的卡死 客户端的程序卡死比较好找原因,入手点就是主线程,看下它此时正在做什么,可以用 k 命令。 ...

C#中var关键字详解:强类型、匿名类型和LINQ查询的妙用!

博主头像 在C#中,var关键字是强类型的,因为它在编译时会根据变量的初始化表达式推断出变量的实际类型,并且一旦确定了类型,就不能再更改。这种类型推断是在编译时进行的,因此代码中的变量在运行时是具有明确定义类型的。 下面是一个简单的示例,说明var的强类型特性以及使用时的一些注意事项: using Syste ...

C#与C++代码的互操作方式

博主头像 title: C#与C++代码的互操作方式 date: 2024-01-10 categories: 编程 tags: - C# - .NET - C++ - COM - 平台调用 大致介绍 在写C#程序时经常有与本地代码(C/C++)代码交互的需求。微软提供了许多种方式供我们选择, 最常用的有以下 ...

.NET中轻松应用SQLite:零配置数据库引擎的完美指南

博主头像 SQLite 是一种轻量级的嵌入式数据库引擎,它在 .NET 中被广泛使用。SQLite 是一个零配置的数据库引擎,不需要服务器,可以直接在应用程序中使用。下面是一个简单的示例,演示如何在 .NET 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。 首先,你需要在项目中安装 Syst ...

<1···161718···21>