笔记
文章平均质量分 70
SlimeNull
.NET 与 C# 狂热信徒
展开
-
Unity 轮转图, 惯性, 自动回正, 点击选择
类似于网页中轮播图的, 2D 与 3D 的轮转图, 包含拖拽的惯性, 拖拽结束的自动回正以及点击选择功能原创 2024-03-05 20:27:27 · 1176 阅读 · 0 评论 -
摘要, 加密, 数字签名, 数字证书以及加密通信简要介绍
关于摘要, 非对称与对称加密, 数字签名, 数字证书以及加密通信的简要介绍.原创 2024-03-05 20:09:56 · 1243 阅读 · 0 评论 -
[.NET] 查询当前已安装所有 Win32 与 UWP 应用
通过各种方式, 查询 Windows 中以安装的 Win32 和 UWP 应用, 包括使用 WinAPI, 注册表, COM, 以及 Win SDK原创 2024-02-02 22:08:42 · 989 阅读 · 0 评论 -
[Unity] 基于迭代器的协程底层原理详解
Unity 协程的本质无非就是在合适的实际执行迭代器的MoveNext方法. 对当前正在等待的对象进行条件判断, 如果满足条件, 则MoveNext, 否则就不执行.原创 2023-12-13 15:37:16 · 1383 阅读 · 0 评论 -
[C#] 基于 yield 语句的迭代器逻辑懒执行
众所周知, C# 可以通过yield语句来快速向或者类型的方法返回值返回一个元素. 但它还有另外一个特性, 就是其内部逻辑的懒执行. 每两个yield语句之间的逻辑都是一个状态, 只有在调用迭代器的MoveNext方法后, 才会执行下一个状态的逻辑.原创 2023-12-08 19:22:09 · 571 阅读 · 0 评论 -
[Rust] 可迭代类型, 迭代器, 如何正确的创建自定义可迭代类型
1. 对于一次性使用的类型, 可以直接对其实现迭代器 trait.2. 对于容器, 不应该对容器本身直接实现迭代器, 而是应该单独创建迭代器类型, 然后对其本身实现 `IntoIterator`原创 2023-12-03 20:20:48 · 833 阅读 · 0 评论 -
[Rust] 快速基础入门教程
Rust 是一个无运行时的强类型语言, 包含很多高级特性, 例如泛型, lambda 等. 又因为其独有的所有权机制, 所以 Rust 的内存安全要比 C++ 完善许多.原创 2023-11-30 14:19:12 · 1966 阅读 · 0 评论 -
在 System.Text.Json 中使用构造函数进行反序列化
这里, 我们暴露了一个公共的构造函数, 传入 username 与 password, 并对只读属性进行初始化. 这里, 构造函数的参数名和属性名必须是一一对应的, 允许大小写不同.另外, 如果你的属性类型和参数类型不一致, 例如构造函数要求传入 string, 而属性是 Uri 的时候, 也是不允许的, System.Text.Json 无法识别它. 示例。原创 2023-11-27 11:26:35 · 473 阅读 · 0 评论 -
[.NET] Speex 语音编解码介绍, 使用, 代码示例
Speex 是一个开源的, 适合语音编解码的算法, 常应用于网络电话中.在下面的的介绍中, 我们将使用对 Speex 编码在 .NET 中的使用做介绍SpeexSharp 可以在 nuget 中直接安装, 并且已经封装了编解码器的类供使用. 如果你不希望了解 Speex 的具体编解码过程, 可以忽略下面的 ‘编码’ 和 ‘解码’ 部分, 只看 Speex 的介绍, 然后直接使用这些类进行编解码.原创 2023-11-13 09:45:19 · 468 阅读 · 0 评论 -
[Unity] 个人编码规范与命名准则参考
Unity C# 在写的过程中, 和纯 C# 是有很大出入的. 甚至说, Unity C# 就是邪教. 例如它的命名规范与 C# 是不一致的, 而且由于游戏引擎的介入, 编写时的习惯相较于 C# 来讲, 也需要有所改变.原创 2023-10-31 08:15:56 · 896 阅读 · 0 评论 -
[.NET/WPF] 设置按钮, 以及其他任何包含边框的控件的圆角
在 WPF 中, 按钮包含一个 “边框”, 很多时候需要设置按钮的圆角, 但是按钮并没有提供一个属性用来设置边框圆角.下面以按钮为例, 列举几种常用的设置圆角的方式.原创 2023-09-02 08:59:24 · 1175 阅读 · 0 评论 -
[Unity, 笔记] 在 Inspector 中显示结构体, 结构体的序列化
给结构体添加 System.Serializable 特性就可以让结构体显示在 Inspector 中了原创 2023-08-31 15:02:36 · 812 阅读 · 0 评论 -
[Unity] 单例设计模式, 可供继承的单例组件模板类
Unity 单例模板类原创 2023-08-28 20:22:36 · 1031 阅读 · 0 评论 -
[Unity] 基础的编程思想, 组件式开发
熟悉 C# 开发的朋友, 在刚进入 Unity 开发时, 不可避免的会有一些迷惑, 例如不清楚 Unity 自己的思想, 如何设计与架构一个应用程序之类的. 本篇文章简要的介绍一下 Unity 的基础编程思想.原创 2023-08-18 16:55:42 · 577 阅读 · 0 评论 -
[.NET/WPF] CommunityToolkit.Mvvm 异步指令
CommunityToolkit.Mvvm 中的 RelayCommand 除了支持最简单的同步方法, 还支持以 Task 作为返回值的异步方法.原创 2023-08-18 14:36:49 · 1553 阅读 · 0 评论 -
[刷机] 9008 刷机救砖笔记
9008 模式刷机并不难, 学会之后, 就再也不用害怕手机成砖了原创 2023-07-19 16:36:23 · 9461 阅读 · 3 评论 -
[C#] 使用 ReadConsoleInput 所需要注意的问题.
使用 ReadConsoleInput, 需要手动启用鼠标输入, 关闭快速编辑模式, 并删去任何读取标准输入的逻辑, 只使用 ReadConsoleInput原创 2023-06-27 20:52:43 · 384 阅读 · 0 评论 -
[.NET/C#] 委托与 Lambda 表达式, 语句详解
在 C# 中, 委托与 Lambda 是最常用的功能之一, 诸如多线程, 可迭代类型的 LINQ 操作, 回调, 都是借助委托完成的. 它在 C 语言对应的是函数指针, 在 C++ 中对应的是 `std::function`原创 2023-05-29 21:46:34 · 951 阅读 · 0 评论 -
[Web] 简单瀑布流布局实现
使用少量 JS 和 CSS 实现的瀑布流布局原创 2023-02-14 09:45:47 · 1190 阅读 · 1 评论 -
[笔记] 关于通过鼠标滚轮设置缩放的技巧
鼠标滚轮缩放的简单算法原创 2023-01-31 21:36:23 · 457 阅读 · 0 评论 -
[.NET] 结构体布局详解与结构体内存对齐具体方式
.NET 结构体有三种布局方式, 序列布局, 显式布局, 自动布局, 其中序列布局存在 "内存对齐" 现象, 内存对齐有两种情况, 一个是字段自己的要求, 一个是当字段大小小于包大小时, 使用包作为对齐要求调整偏移量. 如果不希望进行内存对齐, 指定 Pack 为 1 即可.自动布局的结构体不应该进行与非托管的互操作, 因为成员顺序会改变原创 2023-01-11 03:16:53 · 898 阅读 · 3 评论 -
[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)
无法使用 ANSI 转义序列, 无法通过 \e \1b 逃逸字符打印彩色或格式化内容, 通过调用 WinAPI 启用虚拟终端处理来解决问题原创 2022-11-07 06:00:11 · 279 阅读 · 0 评论 -
[C#,笔记] NAudio 傅里叶变换的 forward 参数与 m 参数
NAudio FourierTransform.FFT 的参数值原创 2022-10-25 07:48:33 · 461 阅读 · 0 评论 -
[全解] 刷机, BL 锁, Bootloader, Recovery, Magisk, Root, ADB, 线刷, 卡刷, 9008, 绕过 FRP
刷机, BL 锁, Bootloader, Recovery, Magisk, Root, ADB, 线刷, 卡刷, 9008, 绕过 FRP 全解原创 2022-10-22 10:43:02 · 12647 阅读 · 3 评论 -
Google Chrome 插件开发: 无法建立连接, 接收端不存在. Could not establish connection. Receiving end does not exist
Google Chrome 插件开发: 无法建立连接, 接收端不存在. Could not establish connection. Receiving end does not exist原创 2022-10-14 10:00:19 · 21697 阅读 · 3 评论 -
泰拉瑞亚 游戏角色 Later version
泰拉瑞亚游戏角色显示 Later version. 是因为游戏角色在新版本的游戏中运行过, 所以旧版本会显示这个原创 2022-10-12 16:00:55 · 3305 阅读 · 0 评论 -
[笔记] WPF TextBox GetRectFromCharacterIndex 返回 Width 为 0
WPF TextBox GetRectFromCharacterIndex 返回 Width 为 0, 获取指定字符的位置与宽高原创 2022-10-10 10:22:17 · 123 阅读 · 0 评论 -
[Unity] Awake 与 Start 的使用, 为什么将 GetComponent 逻辑放到 Awake 中
震惊, 在 Start 中初始化变量竟然会引发如此严重的问题! 性能下降, 逻辑异常, 到底是人性的扭曲还是道德的沦丧?原创 2022-09-27 14:16:18 · 1531 阅读 · 1 评论 -
2022年QQ微信内置浏览器 UA 标识, Header 获取
UA 标识QQ:Mozilla/5.0 (Linux; Android 11; Redmi Note 8 Pro Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045913 Mobile Safari/537.36 V1_AND_SQ_8.8.68_2538_YYB_D A_8086800 QQ/8.8.68.726原创 2022-03-01 17:43:03 · 12827 阅读 · 5 评论 -
[C#] 使用 NAudio 实现音频可视化
预览:捕捉声卡输出:实现音频可视化, 第一步就是获得音频采样, 这里我们选择使用计算机正在播放的音频作为采样源进行处理:NAudio 中, 可以借助 WasapiLoopbackCapture 来进行捕捉:WasapiLoopbackCapture cap = new WasapiLoopbackCapture();cap.DataAvailable += (sender, e) => // 录制数据可用时触发此事件, 参数中包含音频数据{ float[] allSam原创 2021-05-09 23:49:18 · 9471 阅读 · 6 评论 -
[随笔] 音频, 采样, 采样率, 样本大小, 样本编码
音波:首先是初中物理知识, 声音是物体的振动造成的, 所以从时间上看, 这个物体的位置不断变动, 下面这个图象, 就是音波了采样:因为计算机无法存储整个音波, 只能存储音波上一个个的点, 而这一个个的点, 就是采样:采样率:采样率就是采样的密集程度, 如果太过密集, 那么占用的存储空间就会大很多, 但如果采样率小了, 那么这些采样与原波形的形状就有所不同了.样本大小:样本大小表示计算机应该用多大的存储空间来存储一个样本, 有 8bit, 16bit, 32bit, 常用的是 16bit原创 2021-05-06 19:54:02 · 996 阅读 · 0 评论 -
[C#] NAudio 各种常见使用方式 播放 录制 转码 音频可视化
概述在 NAudio 中, 常用类型有 WaveIn, WaveOut, WaveStream, WaveFileWriter, WaveFileReader, AudioFileReader 以及接口: IWaveProvider, ISampleProvider, IWaveIn, IWavePlayerWaveIn 表示波形输入, 继承了 IWaveIn, 例如麦克风输入, 或者计算机正在播放的音频流.WaveOut 表示波形输出, 继承了 IWavePlayer, 用来播放波形音乐, 以 I原创 2021-05-06 19:49:04 · 9556 阅读 · 9 评论 -
[教程] 在 Y 分钟内学会 Python
在 Y 分钟内学会 Python这是翻译, 原文地址: Learn Python in Y Minutes在 90 年代初, Python 由 Guido van Rossum 创造, 现在, 它是最受欢迎的编程语言之一. 因其简明的语法, 我爱上了它. 语法基本上是可以执行的伪代码.提示: 这篇文章适用于 Python 3, 如果你想要学习旧版 Python 2.7, 单击这里# 单行注释以 '#' 作为开头"""多行注释可以使用三个双引号 并且经常用与书写文档"""#####原创 2021-05-05 18:44:21 · 1476 阅读 · 0 评论 -
[C#] C# 与 Java 的一些差异
这篇文章, 可以帮助你借助 C# 的知识快速入门 Java, 并且详细介绍 C# 与 Java 的重要差异1. 数据类型在 C# 中, 基本的数据类型都有别名, 例如字符串 String, 可以简写为 string, Int32 可以简写为 int, 但是在 Java 中, 不存在这些. 使用字符串, 必须要首字母大写, 使用布尔值必须要用 boolean.在 C# 中, String 数据基本数据类型, 而在 Java 中, 严格来讲, 它不属于基本数据类型. Java 中的基本数据类型更像是.原创 2021-04-18 11:07:46 · 308 阅读 · 0 评论 -
[C#] 关于 Linq 拓展函数对迭代对象进行更改不生效的问题
偶然发现, 在使用 Linq 的 Select 方法时, 如果对被迭代对象进行更改, 那么这个更改是不会生效的原创 2021-04-09 10:09:35 · 238 阅读 · 0 评论 -
[C#] 二进制, 十进制, 十六进制, 进制转换
在源码中:C# 中允许在代码中使用 0x 开头的十六进制数字, 以及 0b 开头的二进制数字来表示一个整数. 下面的语法是合理的.int a = 123;int b = 0xFF;int c = 0b10010;数字转换将一个数字转换为某进制的字符串, 有两种方式:// 第一种: 使用 Convert 类. 可转换为 二进制 八进制 十进制 十六进制Convert.ToString(10, 2); // 二进制, 返回 "1010"Convert.ToString(10, 8);原创 2021-04-06 22:37:59 · 1315 阅读 · 0 评论 -
[PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作
PowerShell 快速入门开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象.此文章对于 .NET 开发者来说更简单哦!在 PowerShell 中, 几乎一切都是对象. 与 CMD 有很大不同. PowerShell 是强类型的, 它基于 .NET, 故, PowerShell 可以近乎完美的调用 .NET 的标准库.0. 官方文档既然要学新东西, 肯定要会查阅官方文档才彳亍呀! 本文章参阅官方文档, 并使用更简单的语言讲述给读者, 在每一部分都会有推荐的官方文原创 2021-03-24 15:42:12 · 1022 阅读 · 2 评论 -
[C#] WPF TextBox 在 PreviewDragEnter 中指定 Effect 且指定 Handled 为 true, 仍然无法正常实现拖拽操作.
在开始之前, 请先阅读这篇文章: [C#] WPF Preview 事件与普通事件的区别我们知道, 某些控件会对事件进行处理, 导致部分事件我们无法正常使用, 对于 TextBox, 显而易见的是关于拖拽的事件完全不能正常使用. 因而我们需要使用 Preview 事件.对于一套拖拽操作, 有以下过程:用户拖拽数据进入控件 (DragEnter)用户拖拽数据在控件上移动 (DragOver)用户拖拽数据在控件上松开鼠标 (Drop)对于一个控件, 必须指定这个控件的 AllowDrop 属性为原创 2021-03-19 19:44:01 · 442 阅读 · 0 评论 -
[.NET] 拓展库, 开源库, nuget库收集. (长期更新)
如果感兴趣, 可以试试下面的库名称标签描述Newtonsoft.JsonJSON分析, 文本处理非常流行的JSON操作库, 教程也能够轻松在网上找到, 速度也很不错NAudio音频处理, 录音, 播放音频流行而又强大的音频操作库Fody.Costura程序打包仅需安装这个库, 即可直接使所有需要的程序集内嵌入你的程序, 实现单文件程序System.Drawing.Common图像处理你可能会发现 .NET Core 不内置 System.Drawin原创 2021-03-19 12:12:04 · 409 阅读 · 0 评论 -
[笔记] 记录一次该死的 “玄学“ Bug, 赶紧看看避开这个坑!!! .NET Core, Delegate.BeginInvoke, PlatformNotSupportedException
概述:没事闲着别总是玩异步, 否则可能就会像我这样出现线程问题这件事:首先是… 报了一堆 “平台不支持的” 错误.堆栈显示也看不出来是哪里的问题, 但我看到了 Threading 这玩意儿…:最后通过 “死亡断点” 发现是这里出的问题, 这是一个异步操作的回调函数.进一步调试, 发现是这里, 这里又会 Invoke 一个事件:好家伙, 又是一个事件… 然后我看了看订阅了这个事件的地方…乍一看, 没啥毛病! 但问题确实出在这里! (我实在是太菜了)最后… 我思原创 2021-03-09 21:48:03 · 449 阅读 · 0 评论