自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C#WinForm: Label组件 TxtBox组件 Button组件 ProgressBar组件

在 Windows Forms(WinForm)应用程序中,LabelTextBoxButton和是非常常用的组件。

2025-03-11 17:44:22 572

原创 C#序列化和反序列化:二进制序列化 xml序列化 JSON序列化 自定义序列化

自定义序列化允许你控制对象的序列化和反序列化过程。可以通过实现接口来实现自定义序列化。// 自定义序列化的类set;set;Age = age;// 实现ISerializable接口的GetObjectData方法// 反序列化构造函数// 创建一个Person对象// 二进制序列化// 二进制反序列化。

2025-03-11 17:16:46 460

原创 C#多线程讲解

在 C# 中,多线程编程允许程序同时执行多个任务,从而提高程序的性能和响应能力。

2025-03-10 21:03:29 300

原创 C#线程和线程池

在 C# 中,线程和线程池是多线程编程的重要概念。

2025-03-10 21:00:42 323

原创 C#多播委托

多播委托(Multicast Delegate)是一种特殊的委托,它可以引用一个或多个方法。在 .NET 等支持委托的编程语言中,普通委托通常只引用一个方法,而多播委托可以将多个方法调用组合在一起,当调用多播委托时,会依次调用其所引用的所有方法。

2025-03-07 21:10:12 322

原创 C#静态类(static class)”的特点,并说明何时使用它

在许多面向对象的编程语言中,如 C#,静态类是一种特殊的类,使用static关键字修饰。静态类不能被实例化,它只包含静态成员(静态字段、静态属性、静态方法等)。

2025-03-07 21:07:44 403

原创 C#闭包的讲解

闭包是指一个函数捕获并持有其外部作用域中变量的引用,即使该外部作用域已经结束。在 C# 里,当你在一个方法内部定义一个匿名方法、Lambda 表达式或者局部函数时,如果这些内部函数引用了外部方法的变量,就形成了闭包。这些被引用的外部变量的生命周期会被延长,直到闭包对象不再被引用。namespace _3.闭包讲解//这个过程就是闭包:原理是把值存储在堆中,而不是栈中Console.WriteLine($"捕获到的值:{value}");value = 20;action();

2025-03-06 22:10:40 353

原创 C#线程和线程池

线程池是一种管理线程的机制,它预先创建一定数量的线程,并将任务分配给这些线程执行,避免了频繁创建和销毁线程带来的开销。线程是程序中执行的最小单位,C# 提供了。类来创建和控制线程。

2025-03-06 22:09:06 284

原创 浅谈上位机的历程

目录早期简单监控阶段(20 世纪 60-70 年代)集中式控制系统阶段(20 世纪 80 年代)分布式控制系统阶段(20 世纪 90 年代)基于 PC 的开放式系统阶段(21 世纪初 - 2010 年代)智能化与网络化阶段(2010 年代至今)上位机的发展历程与计算机技术、自动化技术等的发展密切相关,大致经历了以下几个重要阶段:

2025-03-05 20:04:28 769

原创 C#逆变和协变

在 C# 中,逆变(Contravariance)和协变(Covariance)是泛型类型参数的两个重要概念,它们允许在泛型类型之间进行类型转换,增强了类型系统的灵活性。

2025-03-05 19:50:26 387

原创 C#Datatime讲解

DateTime是 C# 中用于表示日期和时间的数据类型。它属于System命名空间,提供了丰富的方法和属性来处理日期和时间。DateTime是 C# 中处理日期和时间的重要类型,提供了丰富的功能来创建、操作和格式化日期和时间。掌握DateTime的使用方法,可以帮助开发者在处理时间相关逻辑时更加高效和准确。

2025-03-04 21:44:25 470

原创 上位机知识点详解

上位机(Host Computer)是指在工业控制系统中,用于监控、管理和控制下位机(如PLC、单片机等)的计算上位机作为工业控制系统中的重要组成部分,其功能和应用范围不断扩大。随着技术的进步,上位机系统将更加智能化、网络化和集成化,为工业自动化和智能化提供强有力的支持。掌握上位机的相关知识和技能,对于从事工业控制和自动化领域的工程师来说至关重要。

2025-03-04 21:35:58 1048

原创 浅谈上位机的优势

目录强大的计算与处理能力良好的人机交互界面高效的数据管理与存储灵活的通信与联网能力系统集成与扩展能力

2025-03-03 21:24:30 763

原创 C#文件操作 文本管理

在 C# 中,文件操作是非常常见的任务,涵盖了文件的创建、读取、写入、修改、删除以及文件夹的操作等。

2025-03-03 21:16:33 361

原创 上位机在市面上的工作:多领域的关键角色

在家居环境中,上位机通过无线通信技术,如 Wi-Fi、蓝牙、ZigBee 等,与各类智能家电设备相连,包括智能灯光、智能窗帘、智能空调、智能门锁等。例如,用户在下班途中通过手机 APP 发送 “回家模式” 指令,上位机随即控制智能门锁解锁,打开家中灯光,调节空调至适宜温度,启动空气净化器等,为用户营造舒适的家居环境。同时,上位机还能对医疗设备的运行状态进行监测,如监测呼吸机的压力、流量等参数是否正常,提前预测设备故障,确保医疗设备稳定运行,为患者的生命安全提供有力保障。

2025-03-01 14:42:08 992

原创 上位机的发展:回顾与展望

云计算技术的兴起,进一步拓展了上位机的功能边界,通过将部分数据处理与存储任务迁移至云端,上位机可借助云端强大的计算资源实现更高效的数据分析与处理。当下,人工智能技术为上位机的发展注入了新活力。在智能家居系统中,上位机通过学习用户的生活习惯,自动调节家电设备的运行状态,实现家居环境的智能控制,为用户提供更加舒适、便捷的生活体验。此外,随着物联网技术的蓬勃发展,大量智能设备接入网络,上位机作为物联网系统的核心控制节点,将在未来万物互联的世界中发挥更为关键的作用,实现对各类设备的智能化管理与协同控制。

2025-03-01 14:33:10 739

原创 C#内置委托

在 C# 中,内置委托是预定义的委托类型,它们可以直接使用,无需手动定义新的委托类型,这大大简化了代码编写。下面为你详细介绍 C# 中几种常见的内置委托。

2025-02-28 20:46:08 349

原创 C#运算符重载

【代码】C#运算符重载。

2025-02-28 20:43:19 500

原创 C#委托的讲解

委托是一种引用类型,它定义了一种方法签名,允许将方法作为参数传递、存储在变量中以及从方法中返回。可以把委托看作是对方法的一种 “包装”,使得方法可以像其他数据类型一样进行操作。

2025-02-27 17:50:00 118

原创 C#堆和栈的区别

栈:后进先出的数据结构,用于存储局部变量和方法产生的上下文信息. 值类型,和方法的局部变量通常都在栈中保存。队列:先进先出的数据结构,属于集合. First in First Out(FIFO)堆栈对象,C#里面采用的是先进后出,(FILO):First in last Out。使用场景:使用栈可以进行算法优化,使用队列可以进行广度的优先搜索,例如对图像进行遍历。堆:内存大小动态变化,更适合存数据结构或者对象。使用方式和非泛型对象一样,只不过对类型有要求。堆与栈都是内存分配机制。

2025-02-27 17:44:30 236

原创 C#字典的讲解

Dictionary:字典:属于数据结构,主要是通过为每一个数据配置一个键来完成数据的操作。字典的操作是根据键来的,一定不能出现找不到或者重复的情况。判断当前字典中是否包含某个键。

2025-02-27 17:40:44 136

原创 C#装箱和拆箱

装箱操作,将int转为了object引用类型,在这个过程中首先创建对象,然后把值付给了对象,好处是让值类型可以实现接口或作为对象类型传递。注意,因为装箱拆箱会导致性能下降,尤其是在处理大量数据时侯,所以,避免装箱拆箱的办法是使用泛型集合List<T>装箱(Boxing) :值类型转换为引用类型。拆箱(Unboxing):引用类型转换为值类型。装箱拆箱经常发生在ArrayList中。将对象中的值复制到值类型变量中。

2025-02-27 17:37:40 168

原创 C#Array ArrayList List比较

List<T>:泛型集合,结合了数组和ArrayList的优点,可以动态调整大小,只能存储跟泛型相关的数据类型,由于是泛型,不需要像ArrayList那样拆箱装箱,拓展方法更多。* 3.List<T> 当集合大小不确定,且需要动态调整,还需要考虑类型安全和高性能时,推荐使用List<T>,结合了1和2,并且优化了很多方法。ArrayList:动态数组,长度不受限,动态调整大小,可以存储任意类型,但是需要显式类型转换,由于需要装箱和拆箱,性能不如Array。

2025-02-27 17:33:03 137

原创 C#ArrayList讲解

动态数组,用于存储对象集合的,属于System.Collections命名空间中的一个类,动态添加删除和访问元素。删除指定索引处的元素。可以理解为是数组集合。

2025-02-27 17:30:06 182

原创 上位机的发展道路:智能化、云化与开放化的未来

未来的上位机可能会采用软件定义的方式,通过软件实现更多的控制功能,减少对专用硬件的依赖。例如,通过软件定义网络(SDN)技术,上位机可以动态调整网络配置,提高系统的灵活性。

2025-02-26 20:41:44 1472

原创 C#泛型的约束说明

注意:指定类型参数必须是实现了特定接口的才可以。7.非空类型约束(where T:notnull)指定类型参数必须是可以为空的类型或非空值类型。3.构造函数约束(where T:new())4.引用类型约束(where T:class)5.值类型约束(where T:struct)注意:参数必须具有无参数的公共函数。6.泛型参数约束(where T:U)1.基类约束(where T:基类)2.接口约束(where T:接口)注意:指定参数必须是引用类型。注意:指定类型必须是值类型。

2025-02-26 20:00:01 142

原创 2025年上位机:智能化与云边协同的新时代

随着工业4.0的深入推进和数字化转型的加速,上位机作为工业控制系统的核心,将在2025年迎来全新的发展阶段。未来的上位机将深度融合人工智能、边缘计算、云计算等新兴技术,成为工业智能化的重要推动力。

2025-02-25 21:49:46 1028

原创 上位机:工业自动化与数据采集的核心

上位机(Host Computer)作为现代工业控制系统的重要组成部分,在工业自动化、数据采集与监控等领域发挥着关键作用。它通过与下位机(如PLC、单片机等)的协同工作,构建起完整的工业控制系统,推动着现代制造业向智能化、数字化方向发展。

2025-02-25 21:31:49 1326

原创 C#Lamabda表达式

简便写法:利用了from where select关键字,相当于把三套业务逻辑整理在了一起,适用于复杂的查询。参数列表 => 语句块或者表达式 =>:运算符,代表(读作)goes to。where属于LINQ,用于定义与查询逻辑的。Select:投影数据,将每个元素转换为另一种形式。灵活的语法糖,用来表示匿名方法或委托。ofType过滤出指定类型的元素。from 代表for循环。orderBy:按升序排列。where:代表条件过滤。where 代表筛选。select 代表选择。

2025-02-25 16:17:03 256

原创 C#List集合讲解

List代表集合,属于泛型的一种定义方式,主要用途是使用对应的类型批量对数据操作。因为List属于泛型,所以类型定义不受限制。可以理解为是一个动态的数组,支持增删改查。自然可以用类命来代替数值类型。

2025-02-25 16:09:51 324

原创 C#泛型接口

接口:声名一套协议规范,交给继承的类或结构体实现。

2025-02-24 17:19:13 112

原创 C#泛型的基本使用

反省允许定义的范围{类,结构体,接口和方法},相比较普通定义方式的好处是,不需要指定集体的数据类型,而是用一个类型参数来代替,在使用时指定。定义一个普通类和泛型类作比较。

2025-02-24 17:14:25 196

原创 C# 枚举的使用

enmu关键字代表定义枚举类型,一般枚举中设置的都是常量值,好处是可以提高代码的可读性和维护性,是代码更加清晰便于理解。枚举中一般都设置常量,默认是整数类型(int),但也可以设置其他的整数类型。使用枚举:像普通类型一样,直接枚举名称.常量名称。在主函数中使用WeekDay枚举。

2025-02-22 16:02:18 724

原创 C# 抽象类的讲解 抽象类和接口的区别

2.接口中成员默认就是抽象,包括方法,属性,索引器和事件,但是不能包含字段和构造函数,也不能有 静态成员。C#中可以创建抽象类,用于提供类的部分成员实现,当某一个类继承自这个抽象类的时候,需要手动实现这个类中的抽象成员。抽象类中可以包含抽象方法,这个抽象方法不能去实现,而是在某个类继承自这个抽象类的时候实现。4.抽象类可以继承自抽象类,子类如果不是抽象类,必须重写抽象类的全部抽象方法。2.抽象类中可以有抽象方法,也可以有抽象方法,普通的类不能有抽象方法。由派生类(普通类)继承抽象类。

2025-02-22 15:59:25 410

原创 C# 接口的讲解

定义,属于引用类型,用来定义方法,属性,索引器和委托,接口本身不实现这些成员,只定义.属于多态的一种体现.定义语言接口。创建一个类ChinesePeople来继承接口。1.定义了方法,不用实现,由派生类实现。4.接口中的修饰符默认是public。在主函数中可以将类实例化,并调用方法。3.静态变量也不能出现在接口中。接口使用interface。2.接口中不能有构造函数。

2025-02-22 15:49:23 267

原创 C# string 的API 方法

【代码】C# string 的API 方法。

2025-02-22 15:39:48 101

原创 接口的讲解

接口使用interface关键字定义,属于引用类型,用来定义方法,属性,索引器和委托,接口本身不实现这些成员,只定义.属于多态的一种体现.注意:接口默认访问修饰符是public,不要用其他修饰定义一个接口创建一个Circle类继承接口注意:接口只能通过实现了接口的类或者结构体来创建在主函数来实现当然一个类也可以继承多个接口

2025-02-20 19:12:06 115

原创 C# 结构体的讲解

结构体:strucy关键字用来定义结构体,属于值类型,主要的用途是封装数据,类似于类,但是只能表示简单的数据结构,例如,书本信息,坐标点,日期,时间等。1.如果是定义一本书,因为书只会有属性,没有行为,属于小数据结构,使用结构体,因为赋值操作开销小.2.如果定义一个人,那么除了属性之外,还会有行为,属于复杂数据结构,食用鱼类,因为传递时候开销小.1.结构体属于值类型,所以默认内存在栈中,而类创建的对象属于引用类型,默认的内存在堆中。2.结构体的赋值是按照值的方式传递的 对象是按照引用类型传递。

2025-02-20 19:07:56 190

原创 C# const与readonly

const(常量)与readonly(只读字段)二者都是用于定义不可变变量的,但是有区别。常量的值必须在声明的时候就初始化,并且在编译时已知.不能在运行的时候动态计算。定义了常量MaxValue,值为100。readonly任意类型都可以描述。我们首先定义一个Class1类。const只能描述值类型和枚举。只读字段使用对象调用。

2025-02-20 19:05:07 102

原创 Math对象

【代码】Math对象。

2025-02-18 19:37:43 85

空空如也

空空如也

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

TA关注的人

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