随笔分类 -  C#

摘要:winform 【winform】主窗体多线程给子窗体传值 .net(c#) winform文本框只能输入数字,不能其他非法字符(转) C#写字板问题一二 —— C#+WinForm编程趣味入门实战-天轰穿.NET4趣味编程视频教程 vs2017 winform打包 【winform】userCon 阅读全文
posted @ 2025-10-18 14:52 【唐】三三 阅读(2) 评论(0) 推荐(0)
摘要:C# Socket 编程完全指南 第 1 章:Socket 编程基础 1.1 什么是 Socket Socket(套接字)是网络通信的端点,提供了应用程序与网络协议之间的接口。在C#中,System.Net.Sockets命名空间提供了完整的Socket编程支持。 通过 socket 这种约定,一台 阅读全文
posted @ 2025-10-18 14:35 【唐】三三 阅读(6) 评论(0) 推荐(0)
摘要:委托 委托是一种类型安全的函数指针,它定义了方法的签名(参数列表和返回值类型),可以指向任何与该签名匹配的方法(包括静态方法和实例方法)。 MulticastDelegate 类是 .NET 中表示多播委托的抽象基类,它允许一个委托实例调用多个方法。 但我们不需要直接实现它。相反,我们应该: 使用内 阅读全文
posted @ 2025-10-17 10:52 【唐】三三 阅读(10) 评论(0) 推荐(0)
摘要:串口通信工具准备 (1)sscom5.13.1.exe: 串口调试工具 (2)VSPD: 是一种虚拟串口驱动程序,用于模拟和创建多个虚拟串口,以便在计算机间进行串口通信 VSPD 串口介绍 Sent: 0 Bytes 表示从该串口发送出去的数据字节数为 0,即目前还没有通过这个串口向外发送任何数据。 阅读全文
posted @ 2025-10-16 20:55 【唐】三三 阅读(8) 评论(0) 推荐(0)
摘要:在 .NET 中,ConcurrentQueue<T>、ConcurrentStack<T>、ConcurrentBag<T>、BlockingCollection<T> 和 ConcurrentDictionary<TKey, TValue> 都是线程安全的集合类,专为多线程并发场景设计,但它们的 阅读全文
posted @ 2025-08-11 18:57 【唐】三三 阅读(46) 评论(0) 推荐(0)
摘要:Moq.AutoMock Continuous NuGet Status Moq.AutoMock 是一个基于 Moq 的自动模拟容器,用于简化单元测试中的模拟对象创建和依赖注入。它特别适用于那些已经使用依赖注入容器(IoC 容器)的项目,可以帮助你解耦单元测试中的构造函数参数变化。 Usage(用 阅读全文
posted @ 2025-02-11 15:53 【唐】三三 阅读(63) 评论(0) 推荐(0)
摘要:Method 方法 有以下例子 using Moq; // Assumptions: public interface IFoo { Bar Bar { get; set; } string Name { get; set; } int Value { get; set; } bool DoSome 阅读全文
posted @ 2025-02-11 15:09 【唐】三三 阅读(135) 评论(0) 推荐(0)
摘要:# xUnit ![](https://img2023.cnblogs.com/blog/196558/202307/196558-20230711133635380-5474221.png) Official Website https://xunit.net/ Tutorials (Chines 阅读全文
posted @ 2023-07-10 14:58 【唐】三三 阅读(36) 评论(0) 推荐(0)
摘要:属性 NUnit 3.x MSTest 15.x xUnit.net 2.x 评论 [Test] [TestMethod] [Fact] 标记测试方法。 [TestFixture] [TestClass] 不适用 xUnit.net 不需要测试类的属性;它在程序集中的所有公共(导出)类中查找所有测试 阅读全文
posted @ 2023-07-10 14:25 【唐】三三 阅读(41) 评论(0) 推荐(0)
摘要:测试常用方法 // 准备 Mock IFoo 接口 var mock = new Mock<IFoo>(); // 配置准备模拟的方法,当调用接口中的 DoSomething 方法,并传递参数 "bing" 的时候,返回 true mock.Setup(foo => foo.DoSomething( 阅读全文
posted @ 2023-07-08 19:02 【唐】三三 阅读(303) 评论(0) 推荐(0)
摘要:whole word 查询 where'$'+ts.TargetSegment+'$' LIKE '%[^a-z0-9]a[^a-z0-9]%' charindex 解释 CHARINDEX ( expression1 , expression2 [ , start_location ] ) Exp 阅读全文
posted @ 2022-06-06 11:38 【唐】三三 阅读(121) 评论(0) 推荐(0)
摘要:注意事项: v1.1.1 ByIntegerKey方法不能使用了 比较的时候,只能比较一个属性。当前版本 整个对象不能比较 比较的是 IEnumerable https://github.com/kinetiq/Ether.ListCompare What's this? ListCompare i 阅读全文
posted @ 2022-03-25 23:30 【唐】三三 阅读(136) 评论(0) 推荐(0)
摘要:Comparison 的使用 var comparer = new Comparison<Tmx2ESModel>((Tmx2ESModel x, Tmx2ESModel y) => { if (x.RequestGuid == targetGuid && y.RequestGuid == targ 阅读全文
posted @ 2022-01-28 13:12 【唐】三三 阅读(111) 评论(0) 推荐(0)
摘要:15.2 思考异步编程 15.2.1 异步执行的基础 实际上, C#编译器会对所有await都构建一个后续操作。这个理念表述起来非常简单,显然是为了可读性和开发者的健康。 实际上基于任务的异步模式要稍有不同。它并不会将后续操作传递给异步操作,而是在异步操作开始时返回一个token,我们可以用这个to 阅读全文
posted @ 2021-05-02 22:09 【唐】三三 阅读(246) 评论(0) 推荐(0)
摘要:文件与文件夹的完全复制,包扩子目录与子目录的文件 static void Main(string[] args) { string dir1 = @"E:\MyTest\2.NET\FileAndDirCopy\file1"; string dir2 = @"E:\MyTest\2.NET\File 阅读全文
posted @ 2021-04-29 22:09 【唐】三三 阅读(273) 评论(0) 推荐(0)
摘要:ExpandoObject 由于ExpandObject的先天不足(无特征性): 1. ExpandObject不能用于太复杂的对象。 ExpandObject最好还是作为简单的数据容器,不要弄得过于复杂,甚至包含有函数处理。 2.ExpandObject的使用范围必须要短 范围短的意思是,产生和使 阅读全文
posted @ 2021-04-29 01:37 【唐】三三 阅读(283) 评论(0) 推荐(0)
摘要:1.保留2位有效数字 decimal d = 0.0500m; d.ToString("0.##")就出来了 也可以这样 string.Format("{0:0.##}",d) .##表示最多保留2位有效数字,但是不包括0,就是说 如果上面d=0.5000,出来后也只是0.5 2.保留8位有效数字 阅读全文
posted @ 2021-04-20 18:02 【唐】三三 阅读(1068) 评论(0) 推荐(0)
摘要:1.泛型约束 约束要放到泛型方法或泛型类型声明的末尾,用where来引入。 1.1.引用类型约束 表示成 T:Class,确保为引用类型,例如: struct RefSample<T> where T : class 允许使用==和!=来比较引用(包括null)。 1.2.值类型约束 表示成 T:s 阅读全文
posted @ 2021-03-07 20:34 【唐】三三 阅读(344) 评论(0) 推荐(0)
摘要:回顾Tuple 1.创建元组 默认支持1到7个元素,如果8个或更多,需要使用嵌套和Rest属性。Tuple类提供创造元组对象的静态方法。 构造函数创建: var testTuple6 = new Tuple<int, int, int, int, int, int>(1, 2, 3, 4, 5, 6 阅读全文
posted @ 2021-02-28 20:53 【唐】三三 阅读(585) 评论(0) 推荐(0)
摘要:1.Thread 1.1 Thread生命周期 1.2 Thread本地存储 本地存储槽 Local Store Slot(本地存储槽):存储的信息只对该线程有用,这叫做线程本地化存储 //1.给所有线程分配一个(未命名)数据槽。 存放数据 var slot = Thread.AllocateDat 阅读全文
posted @ 2020-08-10 21:32 【唐】三三 阅读(551) 评论(1) 推荐(3)