自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 三轴自动化设备控制与系统开发

Zmcaux.cs。

2025-11-03 11:24:29 166

原创 多线程、异步、锁、扩展(.NET 中主要的集合类型概览)

特性说明🔐lock确保同一时刻只有一个线程执行代码块🧱 作用防止多线程下的数据竞争📌 正确用法使用作为锁对象⚠️ 避免锁this、字符串、值类型💡 本质的语法糖✅记住:只要你在多线程中修改共享数据,就要考虑用lock或其他同步机制来保护数据安全。csharp// 队列同步锁// 传感器采集方法(线程方法)i <= 3;i++)string data = $"{sensorName} 数据{i}(时间:{DateTime.Now:HH:mm:ss.fff})";

2025-10-09 18:34:13 928

原创 object类、dictionary

规则说明✅Equals返回true→必须相同否则集合会出错❌相同 →Equals不一定为true允许“哈希冲突”,但会用Equals进一步判断🚫 不要基于可变字段计算哈希码比如Name被修改后,哈希码变了,对象在集合里就“找不到了”✅ 哈希码应尽量“均匀分布”减少冲突,提高性能概念作用返回对象的“哈希码”,用于快速定位把多个字段的哈希码组合成一个Equals()判断两个对象是否“内容相等”DictionaryHashSet依赖和Equals正确工作要进集合,先重写和Equals!

2025-10-09 16:00:44 867

原创 sql语句、

Select列名称from源表名称where查询条件例如select [name],gender from [Teams] //查询所有name在Teams表中select [name],gender from [Teams] where [age]>20表示查询所有name中在Teams表中,年纪大于20的select * from [Teams] 表示查询表中所有Delete from [数据表名称] where [ ]

2025-10-09 10:50:57 256

原创 winfrom模拟打开文件动作获取路径和文件文本内容、菜单控件、工具栏、状态栏、快捷键设置i

ToolStripButton btnNew = new ToolStripButton("新建", Properties.Resources.NewIcon);项类型:`ToolStripButton`(按钮)、`ToolStripSeparator`(分隔符)、`ToolStripComboBox`(下拉框)等。ToolStripMenuItem fileMenu = new ToolStripMenuItem("文件(&F)");// &F设置Alt+F快捷键。// 假设资源中有NewIcon图片。

2025-09-26 23:27:24 754

原创 9.17绑定机制进阶学习

SliderTextBoxTextBoxTextSliderOneValue等价于:“把Text属性绑定到SliderOne的 Value上。

2025-09-26 10:12:35 148

原创 9.16WPF绑定详解

问题回答Invoke会直接改控件吗?❌ 不会!它只是“发通知”谁真正改控件?✅ WPF 的绑定系统为什么需要?❌ 如果不通知,WPF 不知道数据变了,界面就不会更新是什么?✅ 返回字符串"Name",比写死"Name"更安全(重构时不会出错)

2025-09-16 17:53:23 801

原创 C#类型运算符、其他运算符

运算符用途是否抛异常示例is判断类型否as安全转换否(失败返回 null)typeof获取类型元数据否(T)强制转换是(类型不匹配时)default(T)获取默认值否→ 0sizeof(T)获取字节大小否→ 4(需 unsafe)GetType()运行时获取类型否运算符名称用途?Null 条件安全访问成员?[]Null 条件索引安全访问数组/集合??null 合并提供默认值??null 合并赋值仅当 null 时赋值!null 流注解告诉编译器不为 null=>

2025-09-16 10:51:29 681

原创 9.11笔记:一:C#的数据类型主要分为两大类:值类型 (Value Types) 和 引用类型 (Reference Types)。二、数据类型转换。

bool:表示布尔值,只有true或false两个值。char:16位 Unicode 字符,用单引号表示,如'A''\u0041'。用户定义的整数类型,例如:csharp深色版本用户定义的值类型,例如DateTime是一个结构体。string:表示文本,用双引号表示,如"Hello"。字符串是不可变的(immutable)。object:所有类型的基类,可以引用任何类型的值。如int[]string[]等,用于存储相同类型的多个元素。

2025-09-11 10:48:32 389

原创 访问修饰符、命名空间、封装、继承、多态

是指一个类(子类/派生类)可以基于另一个类(父类/基类)来创建,自动获得父类的字段、属性和方法,并可以扩展或修改其行为。// ❌ 编译错误!// 私有字段,外部不能直接访问。public class Dog : Animal // Dog 继承 Animal。public decimal GetBalance() // 只读访问。// 调用 Dog 的实现。// 调用 Cat 的实现。// 各自调用自己的 Draw 方法。// 继承 Animal。

2025-09-10 17:03:07 345

原创 LINQ练习笔记合集

collection.Aggregate(9, (x, y) => x + y).Dump("带初始值的累加");collection.Aggregate((x, y) => x + y).Dump("简单累加");// 计算过程:((((((9+1)+2)+3)+4)+5)+6) = 30。

2025-04-27 09:52:16 389

原创 各类集合详细

(hashtable.ContainsKey(004)))//也可以ContainsValue。//Array数组;

2025-04-21 22:40:44 333

原创 事件详解1

/文本框距离窗口顶端的距离。响应:time.interval=1000;类三大成员:属性(存储数据)、方法(做事)、事件(通知别人)。5.事件订阅(把事件拥有者和响应者关联起来)1.事件的拥有者(event sorce)创建事件:using System.Timer;订阅:time.Elapsed +=xxx.练习3:事件响应者是一个事件拥有者的成员字段。练习2:自己的方法处理自己的事件。

2025-04-08 18:50:01 917

原创 传值输出取地址引用数组具名可选参数扩展方法

double.TryParse{字符串名,out 变量名}:检测是否可以把一串字符解析成双精度浮点型,返回一个布尔值。必须由一个静态类(一般类名为SomeTypeExtension)来统一收纳对SomeType类型的扩展方法。扩展方法:必须是公有的静态的,被public和static修饰的。ref:相当于c语言中的&取地址符(个人理解)必须是形参列表中的第一个,由this修饰。return作用:尽早返回。

2025-04-05 11:06:00 153

原创 字段、属性、索引器、常量(索引器没听明白)

常量隶属于类型而不是对象,“成员常量”由只读实例字段担当。表示局部常量,不可修改。静态字段表示类当前状态,不是成员对象状态。按ctrl+r、e键把字段封装。prop+两次tab键快速打包。索引器没明白需要复习!

2025-04-04 16:52:37 137

原创 迭代语句(循环)

foreach(声明变量 in 迭代器){块语句}continue:结束本次循环立刻跳转到下次循环。break:退出循环(本层循环对外层无效)for循环:循环次数已知(计数循环)

2025-04-04 09:19:08 137

原创 表达式语句详解

throw:可以把异常抛出,抛回调用的地方来接收异常。Parse:把字符型解析成整型数据。try{}catch{}:捕捉异常。

2025-04-01 19:08:17 139

原创 操作符详解

同一优先级有赋值运算从右向左var:推断类型/隐式类型(其实也就是弱化类型的定义)。VAR可代替任何类型,编译器会根据上下文来判断你到底是想用什么类型。不能再次赋别的类型的值。checkedunchecked语句指定整型类型算术运算和转换的溢出检查上下文。当发生整数算术溢出时,溢出检查上下文将定义发生的情况左移<<(每次移动一位就是乘以二)转二进制左移低位补0,左移太多移出去就变成零了;放在上下文中如果左移溢出就会报异常右移>>:(每次移动一位就是除以二)转二进制,右移一位每次以为最高位补1。

2025-04-01 12:28:29 331

原创 类型、对象、变量(下)

引用类型(如object申明的成员变量)引用的不是堆上的实例(如object成员变量)而是栈上的一个值类型的变量,会先把这个值类型的值装箱,在堆上面找一个存储空间变成对象,然后存放(复制在这个空间里),最后把这个堆的地址存在栈上的空间里。.拿值类型变量取引用类型变量里存放的值类型的值(如int y = [int]obj;)在内存中给值类型变量(y)开辟空间然后把引用类型所在地址(在堆上)的值复制进来。c#的五大数据类型:引用类型:(类、接口委托)值类型:(结构体、枚举),所有类型以object为基类型。

2025-03-26 08:18:13 229

原创 方法的定义调用和调试

引用类型的实例永远保存在堆里,无论实例成员里是否有引用类型(引用类型的对象总是放在堆上),所以实例成员引用类型string的引用部分和数据部分都是放在堆里。当变量为成员变量时,引用类型的引用和基本类型的值存储在堆内存中。当变量为局部变量时,引用类型的引用和基本类型的值存储在栈内存中。当变量为静态变量时,引用类型的引用和基本类型的值存储在方法区中。栈内存先往高的地址分配再往低的内存分配(后进先出)有了带参数的构造函数,默认使用的构造器便会失效。ctor+两次tab键生成构造器。引用类型的实例永远存放在堆里。

2025-03-26 07:52:49 196

原创 语言基本元素、方法、类型、变量、算法

c#基本元素:关键字、操作符、标识符、标点符号、文本注释与空白。//递归输出1-x所有数。//用循环计算1-x的和。//用递归计算1-x的和。{//循环输出1-x所有数。

2025-03-23 09:42:08 356

原创 类,对象,类成员

类的三大成员:属性(Property)、方法(Method)、事件(event)类的静态成员与实例成员:关于绑定(Binding)绑定指的是编译器如何把一个成员与类或对象关联起来。

2025-03-22 14:30:28 119

LINQ练习笔记合集压缩包

LINQ练习笔记合集压缩包

2025-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除