![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
类库
文章平均质量分 75
SlimeNull
.NET 与 C# 狂热信徒
展开
-
[.NET] Speex 语音编解码介绍, 使用, 代码示例
Speex 是一个开源的, 适合语音编解码的算法, 常应用于网络电话中.在下面的的介绍中, 我们将使用对 Speex 编码在 .NET 中的使用做介绍SpeexSharp 可以在 nuget 中直接安装, 并且已经封装了编解码器的类供使用. 如果你不希望了解 Speex 的具体编解码过程, 可以忽略下面的 ‘编码’ 和 ‘解码’ 部分, 只看 Speex 的介绍, 然后直接使用这些类进行编解码.原创 2023-11-13 09:45:19 · 468 阅读 · 0 评论 -
[C#] 使用 NullLib.TickAnimation.Drawing 实现 WinForm 过渡动画
NullLib.TickAnimation 用于实现对一个对象的属性(Property), 以指定的计时函数, 在一定时间内从一个值, 平滑的过渡到另一个值.例如你可以使用它将一个 WinForm 窗体的 Bounds 从一个值过渡到另一个值以实现窗体位置与尺寸的过渡动画. 下面是一个简单示例:快速开始首先, 创建一个 WinForm 项目用于测试, 向主窗体中添加一个按钮, 并为按钮的点击事件添加事件处理器在解决方案管理器中右击项目, 选择 “管理 nuget 程序包”, 然后安原创 2021-06-30 02:45:05 · 747 阅读 · 0 评论 -
[C#] 使用 NullLib.CommandLine 分析命令行字符串并执行与代码中定义的方法
摘要介绍通过命令行字符串来方便快捷的调用 C# 中定义的方法准备添加 nuget 包: NullLib.CommandLine使用方式首先, 在 NullLib.CommandLine 中用于调用方法的最基本类型是 CommandObject, 它包含了方法的各种信息, 例如 MethodInfo, ParameterInfo, 以及属性.然后, 你需要定义一个包含要调用方法的类, 在这个类中, 每一个将被调用的方法都应该有一个 Command 属性, 之后我们将用这个类型实例化一个 Com原创 2021-06-29 21:54:51 · 341 阅读 · 4 评论 -
[C#] 计算 MD5 SHA1 SHA256 SHA384 SHA512 CRC32
直接贴代码了, 复制即可用, 源码部分来自网络.如果要计算字符串的 MD5 值, 直接 Encoding.UTF8.GetBytes() 然后就可以了using System;using System.IO;using System.Linq;namespace NullLib.HashCalc{ public class HashHelper { public static string CalcMd5x32(byte[] bytValue)原创 2021-04-18 02:38:55 · 420 阅读 · 0 评论 -
[C#] 好耶! 是幻影坦克! 原理讲解, 完整类库, 现成代码.
啥是幻影坦克? 幻影坦克就是, 一张黑白图片, 在黑色背景下和白色背景下能够显示出不同的图像.首先, 我可以明确的告诉你, 它的原理就是控制像素的颜色和Alpha通道(不透明度), 来使显示的图像在不同背景下显示不同的颜色.最基本的, 就是, 一张半透明的黑色薄膜, 如果在黑色的纸上, 你什么也看不出来, 但如果在白色纸上, 你可以看见, 它是灰色.本文中, Alpha 统一拟定为 0 ~ 1 的浮点数, 像素亮度统一为 0 ~ 1 即像素’白的程度’, 例如纯白为1, 纯黑则0.注意:本项原创 2021-03-03 16:44:09 · 8588 阅读 · 2 评论 -
[C#] 绘制函数图像. 可拖动, 可缩放, 可调整精度
欸嘿, 这就是程序图了, 通过鼠标拖拽可以移动, 鼠标滚轮可以缩放, 右下角还可以选择要绘制的函数. 项目仓库链接在文章末尾基本原理:Graphics 绘图, 不用我说了吧? 如果你不是很懂, 留言, 我会专门写一篇文章来介绍 Graphics.带入求值, 没啥难的. 线是一个个点连起来的, 也就是:然后, 标尺, 也是一个个线呗, 那个数字的话, 就是这个:填充小三角的话, 就是这个:关于优化:首先是计算问题, 保证仅仅计算需要显示的区域, 区域外的坐标不予以计算, 以节省资源.然.原创 2021-02-19 22:00:53 · 3814 阅读 · 5 评论 -
[C#] IEnumerable拼接! 将枚举器串起来~
本来以为 IEnumerable 不能拼接, 就自己实现了一个, 结果发现 Linq 是提供了一个 Concat 函数的, 不过似乎是通过生成List的方式来实现? 反正我那个是异步的.用来做参考还是非常不辍滴, 速度的话, 4个10000拼接, 然后重复迭代10000次, 我写的是3590ms, Linq 的是2931ms, 不过两个其实都没有直接 ToList() 然后迭代要快, ToList(), 然后AddRange, 其实耗时只有九百多毫秒, 足足差了3倍左右.static void Coll原创 2021-02-19 15:28:33 · 844 阅读 · 0 评论 -
[C#] Range函数, 好用就完事儿了!
这么多重载, 完全够用了~, 返回值是 IEnumerable<T>using System;using System.Collections;using System.Collections.Generic;namespace Null.Library{ public static partial class Lib { public static IEnumerable<int> Range(int stop) {原创 2021-02-19 07:07:41 · 2943 阅读 · 0 评论 -
[C#/VB.NET] C# 与 VB.NET 的类库跨语言引用.
例如你有一个程序, 是 VB.NET 写的, 你希望在里面引用 C# 的代码, 那么, 该如何操作呢?准备材料:一个 C# 或 VB.NET 项目, 我们以一个测试项目(WinForm)开始与该项目语言不同的, 但是是基于 .NET 的类代码片. 代码地址: 一个类实现控件拖拽移动分布演示:1. > 创建类库项目:创建一个与我们准备的类库语言相同的类库, 并将代码拷贝到其中:2. > 添加项目引用:在刚刚准备好的 WinForm 项目中, 添加对类库项目的引用.原创 2021-02-15 01:57:02 · 876 阅读 · 0 评论 -
[C#] 音乐播放 3 种方式 Demo 与 MCI 音乐播放器封装类.
淦!首先代码是不完整的, 我还是没能成功设置音量, 除此之外, 别的倒是挺顺利的, 当前实现的功能如下:播放 暂停 还原 停止 获取进度 获取长度 设置进度 获取播放状态内容:本项目的仓库在: SlimeNull/AudioTest, 在这里下载哦, 别忘了还原 nuget 包, 因为用了 NAudio 库.> 音乐播放 Demo:先放图吧:首先左上角是打开文件的, 然后 PlayType 是播放方式, 我现在让它支持 3 种, 一种是SoundPlayer, 然后是 M原创 2021-02-11 10:42:39 · 403 阅读 · 0 评论 -
[C#] Stream 支持写入读取触发事件的类库 继承Stream基类
[C#] Stream 支持写入读取触发事件的类库实现了 :你可以将这个流类的实例提供给某些东西, 在它操作这个流时, 你可以通过事件来接收到消息, 并加以处理, 例如拒绝写入, 或在写入前判断写入的内容. 你可以稍微改动一下这个类以适应你的需求.应用场景: 例如你使用了 IronPython 库, 并使用它执行了一些操作, 你希望 IronPython 每次 print 时, 你都能获取到内容, 则, 你可以使用这个触发流(TriggerStream)类, 将 IronPython 引擎的标准输出原创 2021-02-03 03:02:37 · 302 阅读 · 0 评论 -
C# 动态输入
C# 动态输入,在输入时你也可以访问你写入的内容1.缘由1.缘由. 最开始是我在写一个网络聊天程序(其实简陋的要命),然后服务端懒得写界面,就直接用的控制台,然后又想实现一些小指令,比如禁言,踢人,禁IP什么的,但是服务端在接收消息后就会直接将消息信息打印在控制台上例如这样 (下划线是光标所在处)老王 : 哎,房租又涨了,又得吃土了老张 : 啧啧啧,又在炫富了,我连土都莫得吃_但...原创 2020-04-06 03:48:49 · 552 阅读 · 0 评论 -
[C#] 控制台动态输入 - 增强版Console.ReadLine(), 在ReadLine的过程中获取用户已经输入的内容或移动已经输入内容的位置
简介:这是一个类库,正如标题所说,它具有这两个最基本而又强大的功能,有时候,我们可能会需要在ReadLine的过程中就访问已经输入了的内容,但.NET又没有提供这样的功能。其实在之前已经写过一个文章,也是动态输入,但是太烂了地址:旧的动态输入功能:在ReadLine的时候就读取已经输入了的内容,提供了完整的封装移动已经输入了的内容,你可以在输入时就将输入内容移动到控制台的任意位置光标移动,插入和覆盖模式,HOME和END键的处理。字符输入事件,在用户按下后,会有两个事件触发,可以通过原创 2020-12-30 22:33:07 · 792 阅读 · 0 评论 -
[C#] CHO.Json操作Json数据
这是一个类似于Newtonsoft.Json的项目, 但与其有些出入。这是它与Newtonsoft.Json的差别:CHO.Json支持你像Python那样不需要实体类而简便的操作小型数据, 也支持将类的实例序列化为Json文本与将分析完毕的Json数据反序列化为特定类的实例CHO.Json少了许多冗余的功能, 例如将图片序列化为字符串, 因此CHO.Json可能要比Newtonsoft.Json轻量许多。CHO.Json的源代码比Newtonsoft.Json更适合初学者阅读, 在看懂它的代.原创 2020-10-28 23:52:44 · 299 阅读 · 0 评论 -
[C#] 运算包含数学表达式的字符串
关于:原理讲解代码示例完整程序源码下载适用于:实例代码适用于: .NET Framework & .NET Core算法通用. 只要你能够找到与算法对应的实现方式.将要实现:分析表达式实现所有的通用运算符实现三元运算符原理:使用"状态机"算法分析表达式根据运算符优先级, 不断尝试运算, 最终得到结果详解:第一步, 我们需要将运算表达式分成一个个节点(token), 这个节点可能是一个数字, 可能是一个运算符, 至于表达式里的括号, 我们会使用递归来原创 2020-10-29 11:41:22 · 853 阅读 · 1 评论 -
[C#] 计算字符串在控制台上显示的宽度, 包含所有Char能表示的字符!
通过运算, 获取字符串在控制台上现实的宽度(单位为一个英文字母的宽度, 高度为控制台中一行的高度)在网上找了半天, 唯一一个正儿八经的, 就是通过GBK编码的字节数来推测所占宽度, 但我认为这个有点不大妥当, 例如某些特殊字符, 可能就不被GBK编码包含.所以, 我这里提供了一个可获取字符串显示宽度的可行方法.首先, 我通过循环C#中所有的字符, 并将其打印到控制台上, 运算单个字符所占宽度, 最终得出了一个List<int>, 通过这个列表, 只需要以字符强制转换为int的.原创 2020-10-28 23:27:11 · 1293 阅读 · 4 评论 -
[C#] 一个类实现拖拽调整窗体或控件大小
最近闲来无事, 倒是借助WebAPI实现翻译器, 本想设计一个炫酷的界面(模仿VS), 却没想到, 难度大大超出我的想象, 拖拽, 调整大小, 如果要实现VS的边框, 还需要想办法做到过渡透明! 这对于WinForm来说实在是太难了, 如果不过渡透明, 就是全透明, 那鼠标就直接穿窗体了!不过还是有些成果的, 比如, 造了两个轮子(我真是一个热衷于造轮子的傻子)所说的轮子就是文章标题咯, 因为之前我还做了一个类来实现拖拽移动控件或窗体嘛, 所以我就直接把这个调整大小的跟之前的功能整合到了..原创 2020-07-10 03:11:28 · 1144 阅读 · 0 评论 -
[C#] 如何创建DLL并在项目中使用
注意:文章适合初学者, 讲的较为详细, 大佬可以绕道作者也是自学C#的, 所以有些东西可能讲的也有些不好, 请见谅关于DLL:在C#中, DLL可以说是类库, 创建一个类库类型的项目后, 生成时生成的文件时一个DLL文件一个类库中, 包含一个或多个类, 这些类处于某个命名空间下, 当引用这个DLL文件后, using 相应的命名空间后即可直接使用类库中所包含的类一般的, 创建DLL文件为的是将自己定义的一个类, 直接制作成DLL文件以方便别人使用, 这样不需要复制代码也可以使用你定义的类.原创 2020-07-05 01:05:33 · 3027 阅读 · 2 评论 -
[C#] 无需实体类, 解析读写Json, 简单操作。
1. 关于:这是我自己写的一个类库, 已经封装到了一个dll中, 暂且命名为CHO.Json, 它能够使你像Python那样操作Json数据, 非常适合新手虽然在操作较大的Json数据时, 需要实体类会更方便, 但是这个类库, 可以让你实时判断Json数据的类型. 当然, 以后也会考虑加入需实体类的序列化与反序列化.它具有较大的容差值, 所以允许一些Json不允许的操作, 例如将Bool值作为Object中的键, CHO.Json支持这样, 由CHO.Json生成的Json文本, CHO.Json完原创 2020-07-02 23:24:19 · 1664 阅读 · 3 评论