随笔分类 - C#
visual studio
摘要:一、SendMessage帮助类: /** *┌──────────────────────────────────────────────────────────────┐ *│ 描 述:两个exe程序之间通信_发送消息传递(SendMessageAPI) *│ 作 者:执笔小白 *│ 版 本:1
阅读全文
摘要:一、通讯方式: 1、发送消息(SendMessage) C#-exe间通讯(一)-发送消息SendMessage 2、共享内存(选择性加锁或互斥锁;共享介质的一种,相似的如数据库、文件) C#-exe间通讯(二)-共享内存 3、线程通道 略:C#-exe间通讯(三)-线程通道 一个用了该方法的例子:
阅读全文
摘要:使用System.Runtime.InteropServices.Marshal.PtrToStructure(IntPtr变量, Struct类型),如: // DATASTRUCT为struct类型名 // lParam为IntPtr类型的变量 DATASTRUCT myStr = (DATAS
阅读全文
摘要:方式一(我测试的没有效果): string keyChar = new KeysConverter().ConvertToString(KeyCode) 方式二: Keys keys = (Keys)keyCode; string keyChar=keys.ToString(); 补充: Syste
阅读全文
摘要:一、概念: 1、什么是反射? ① 用于获取同dll中的元素(类、结构)的内容; ② C#编写的程序会编译成一个程序集(.DLL或.exe),其中会包含元数据、编译代码和资源,通过反射可以获取到程序集中的信息; ③ dll信息:dll中的类、结构、属性、方法、特性等。 2、反射的优缺点 ① 首先在编译
阅读全文
摘要:一、概念: 1、什么是特性(Attribute)? 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。 在一个元素(如类和属性,方法等等)上可以使用一个或多个特性进行修饰。 特性可以拥有参数。 程序可使用反射来检查自己的元数据或其他
阅读全文
摘要:[StructLayout(LayoutKind.Explicit)]与[FieldOffset(0)] :FieldOffset(偏移量) [StructLayout(LayoutKind.Sequential)]与 [MarshalAs(UnmanagedType.U4)]:UnmanagedT
阅读全文
摘要:托管变量变为非托管变量 string a=""; string b; int str_size = Marshal.SizeOf(a); IntPtr buffer = Marshal.AllocHGlobal(str_size); // 从进程的非托管内存中给DevBroadcastDevicei
阅读全文
摘要:1、运行代码: #region 查Default是否可能是null List<string> strs = new List<string>(); string s1=strs.FirstOrDefault(); Console.WriteLine(s1); List<Test1> test1s =
阅读全文
摘要:Regex regex = new Regex(@"^[A-Za-z0-9 ]+$"); // 正则表达式(可以为空格+大小写字母+数字) return regex.IsMatch(oldStr); // 只有空格+大小写字母+数以内的字符则为true
阅读全文
摘要:一、简介: Linq(语言集成查询): 为 C# 和 Visual Basic 提供语言级查询功能和高阶函数 API,让你能够编写具有很高表达力度的声明性代码。 二、优点: 1、LINQ具有语言级查询语法,切可用let定义语句内变量; 2、具有很高的表达力度。 三、基础语法示例: // See ht
阅读全文
摘要:_=方法(); 中的'_'为方法返回的结果放在堆栈中,不做存储。方法同步运行 Console.WriteLine("Hello, World!"); _ = Main1(); // 可以结束掉 _ = Main2(); // 死掉 Console.WriteLine("EndWorld!"); Co
阅读全文
摘要:// 泛型类; class引用类型约束;new()无参约束;struct值类型约束 class TC1<T> where T : class { T member; #region 多态是指同一个行为具有多个不同表现形式或形态的能力;返回类型可以不一样,参数类型可以不一样,参数个数可以不一样。 pu
阅读全文
摘要:比较两个List是否相同 1 List<string> List1 = new List<string>(); // Link组 2 List<string> List2 = new List<string>(); // Link组 3 // 略过赋值List1.Add("string"); 4 5
阅读全文
摘要:1、Thread.Sleep() Thread.Sleep(1000); // 等待1s 2、Task.Delay() await Task.Delay(1000); // 等待1s 3、Monitor.Wait(threadlock, 1000); object threadlock = new
阅读全文
摘要:// 添加NuGet包:System.IO.Compression.ZipFile /** *┌──────────────────────────────────────────────────────────────┐ *│ 描 述:Zip相关的工具类 *│ 作 者:执笔小白 *│ 版 本:1.
阅读全文
摘要:/************************************************************ * Description: Guid帮助类,用于生产连续的Guid * Create Time: 2019-02-25 * Author:zh.z * Version: v1
阅读全文