自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解笛卡尔坐标系

笛卡尔坐标系是我们描述空间位置最基础、最直观的方式,我这样理解它:- 本质 :用相互垂直的数轴来定位空间中的点- 命名 :以法国数学家笛卡尔(René Descartes)命名- 维度 :可以是二维(XY)、三维(XYZ)或更高维度在三维空间中,笛卡尔坐标系由三个相互垂直的坐标轴组成:1. X轴 :通常表示左右方向2. Y轴 :通常表示前后方向3. Z轴 :通常表示上下方向这三个轴相交于一点,称为 原点 (通常记为O),坐标为(0,0,0)。

2025-05-13 10:45:07 1941

原创 WPF中XAML的优点

作为 WPF 的 UI 定义语言,提供了声明式的语法、数据绑定、样式和模板等特性,使得界面设计和代码分离、UI 重用等方面都有很大优势。和winform比起来具有采用了先进的渲染和数据绑定技术,具有更强的可定制性和响应式设计能力。XAML使设计师能直接参与软件开发,随时沟通、无需二次转化——高效。XAML 不需要专业的编程知识,它简单易懂、结构清晰——易学。XAML 可以设计出专业的 UI 和动画——好用。

2025-03-07 11:07:54 659

原创 VS2022远程调试保姆级配置手册

如果只选择ip没办法确定,那你可以在ip下面随便选个文件夹确定后在外面删掉最后保持我这个格式就行。启动完成之后还需要在工具的选项进行配置,选择无身份验证并且勾选允许任何用户进行调试。右键刚刚创建的文件夹,属性 → 共享 → 网络文件与文件夹共享 → 共享。):也是和上面同样操作进行静态ip地址配置,静态ip可以在这里。因为我的下一层就是debug启动项我就只选择了静态ip。操作完成后可以进行配置VS软件的生成和调试配置。在启动程序的属性中找到输出的基路径这样配置。(不需要输入用户名密码),可以关闭。

2025-03-02 14:24:59 2009

原创 通讯Modbus RTU CRC16 校验

其中aucCRCHi 和 aucCRCLo 数组是 CRC16 计算时使用的高位和低位查找表,这种方式可以提高计算效率。通过查表法,Modbus RTU 设备能够快速计算出数据帧的 CRC 校验码,并在接收端验证数据的完整性。crc16校验的方法,在这里是用来拼接报文。00 00:寄存器起始地址(0000)03:功能码(读取保持寄存器)00 01:读取 1 个寄存器。

2025-02-24 13:40:20 1675 1

原创 visualStudio2022解决git push时出现未能推送到远程仓库。请参见输出窗口了解Failed to connect to github.com port 443: Timed out

使用vs进行代码推送到github有时候会出现标题上的错误信息输出代码里面也会出现这种情况,

2025-01-02 11:12:33 2362

原创 winform项目实现国际化(语言切换)功能

创建资源文件:加载和切换资源文件:应用资源到控件:优点:缺点:定义全局变量:创建配置文件:加载配置文件:应用配置到控件:优点:缺点:上面两种方法个人感觉不太适合体量大的项目,项目中的控件过多的话手动添加XML或者本地化操作会很臃肿在网上了解到可以调用翻译接口去实现这个功能http://api.fanyi.baidu.com/api/trans/vip/translate我的软件框架版本是.net8数据库SqliteDAL.cs中的代码通过递归去获取窗体控件的text接口实现这里是替换语言的部分,

2024-12-12 16:59:14 1710 5

原创 上位机:winform调用webapi接口GET和POST实现案例

点击下一步,不用配置HTTPS,我用的是.NET8环境,根据自己实际需要去进行选择。

2024-11-27 14:21:07 2209 1

原创 VisualStudio2022使用git推送报错解决 Failed to connect to github.com port 443 的问题

无法连接到github.com端口443:无法连接到服务器。出现的问题:无法将本地代码提交到 Github 仓库。先测试gitHub的连接使用命令提示框查看是否可以进行ping通,有下图的数据回复说明是可以ping通的如果ping命令失败或显示高延迟,则表示存在网络连接问题。可能需要联系网络管理员或互联网服务提供商寻求帮助。

2024-11-13 09:15:50 1135 1

原创 模拟汇川5U_PlC和上位机进行通讯

汇川的5U可以在本机部署一个虚拟的modbus服务端进行模拟通讯,需要进行下面几步操作:一.进入下面的官网链接去下载这个链接去下载AutoShop软件二.安装好以后对汇川AutoShop相关配置1、新建一个H5U临时工程。

2024-10-25 15:06:32 2573

原创 上位机通讯汇川Plc3U和5U

解压完成后找到上面的动态库复制到自己项目的根目录下面然后就可以进行下一步操作了。

2024-09-27 16:30:42 2274 1

原创 .netcore8序列化Tcp报错:Json.Net - Error getting value from ‘ScopeId‘ on ‘System.Net.IPAddress‘

然后我就没在这个思路是继续折腾了,转变了一个方式:在序列化保存的时候直接将保存的通讯对象的相关属性设置为空,在反序列化的时候直接根据它们之前的连接bool值进行一个动态的加载,这样就可解决上面所遇到的那些问题了。因为我序列化的类里面包括了通讯的属性,正常情况下TCPClient不进行连接的话可以直接序列化不会报错,当client连接后在进行保存序列化就会出现项目的错误。的访问有关,比如在关闭后仍然尝试访问某个属性。这三种报错我在去优化代码的时候都出现了。的错误,可能是由于在尝试关闭或操作。

2024-09-27 15:37:08 732

原创 C#事件访问器(Event)

和委托类似,事件是后期绑定机制。实际上,事件是建立在对委托的语言支持之上的。事件是对象用于(向系统中的所有相关组件)广播已发生事情的一种方式。任何其他组件都可以订阅事件,并在事件引发时得到通知。通过订阅事件,还可在两个对象(事件源和事件接收器)之间创建耦合。需要确保当不再对事件感兴趣时,事件接收器将从事件源取消订阅。

2024-08-22 17:07:24 830

原创 运动控制卡

运动控制轴卡(通常称为运动控制卡或运动控制轴模块)是用于控制机械设备(如电机、伺服系统和步进电机)的专用硬件。它们通常集成了运动控制算法,可以独立或与主控系统配合使用,负责生成运动轨迹、执行运动命令和处理反馈信号。

2024-08-03 23:10:55 1700

原创 HTTP 状态码详细介绍

HTTP 状态码是 Web 服务器响应 HTTP 请求时返回的三位数字代码,主要用于指示请求的处理结果。这些状态码被分为几个类别,分别表示不同的响应类型。

2024-08-03 22:51:15 1176

原创 ResolutionFailedException: Resolution failed with error: No public constructor is available for type

wpf运行的时候出现这个错误是因为该错误通常发生在依赖项注入框架的上下文中,例如 Spring 或 .NET Core 的依赖项注入。

2024-07-20 22:17:26 551

原创 Windows桌面应用开发框架

Web富客户端。

2024-07-18 21:30:44 604

原创 工业互联网c#上位机对接mes系统上传数据

确保数据传输过程中的安全性,可以通过HTTPS协议和适当的身份验证措施(如OAuth2.0、基本认证等)来保护数据的机密性和完整性。在实际部署之前,进行充分的测试以确保数据上传功能正常运作。设置监控系统来追踪上传操作的性能和状态,以便及时调整和优化。确保项目引用了必要的库,如HTTPClient(用于HTTP请求)、JSON.NET(用于处理JSON数据)等。首先需要明确要上传到MES系统的数据内容和频率。编写方法将数据上传到MES系统。根据MES系统的数据结构要求,创建相应的数据对象。

2024-07-18 21:26:48 5564

原创 c#中的设计模式

模型model、视图View、控制器Controller分离业务操作、数据显示、逻辑控制。

2024-07-10 10:20:54 446

原创 WPF的UI布局

ui和动画更专业-好用简单易懂,结构清晰-易学使设计师直接参与软件开发,随时沟通无需二次转化-高效真正实现了UI和逻辑的剥离(ui集中在ui层、逻辑代码集中在程序逻辑层,形成高内聚低耦合的结构)XAML是一种“声明”式语言,当你见到一个标签,就意味着声明了一个对象,对象之间的层级关系要么是并列、要么是包含,全都体现在标签的关系上。

2024-07-10 10:16:56 1734

原创 通过.NET6 创建的ASP.NET Core webapi项目中没有 Startup 类和ConfigureServices 方法

Startup.cs 作用就是,对项目中用到的 静态文件,管道,服务,日志,路由,数据库连接,过滤器的注册 等 所有的有关程序的启动运行中用到的。Startup.cs 类所需的所有对象都存在于 builder 对象中,因此我们可以将所需的对象传递给和方法。没有startup.cs可以手动新建一个Startup.cs类(

2024-07-10 10:05:03 1729 1

原创 主窗体获取子窗体的数值

本文所描述的是一个modbus读从站的数值实时更新到主窗体中,在主窗体中实时检测子窗体反馈回来的数据当它为false的时候添加报警输出。子窗体通过timer事件重复读取从站中传递过来的值。下面是子窗体的代码实例。

2024-06-13 15:14:45 291

原创 暂停系统更新

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings。打开FlightSettingsMaxPauseDays,没找到的话就创建一个同名文件夹然后选择10进制填入3550​​​​​​​。最后进入系统暂停更新界面选择最下面的就好。电脑左下角搜索注册表编辑器。

2024-06-07 20:09:26 484

原创 重复设置DataGridView.DataSource报错“未将对象引用设置到对象的实例。”

这里重复添加到第二次dataGridView1.Columns["colName"].DisplayIndex = 0;只是一个自动调整大小的数组,由给定类型的项目组成,带有几个辅助函数(例如:排序)。这是支持双向数据绑定(bind)的标准接口(interface)之一。最后建议处理逻辑时用List,但作为数据源绑定是用BindingList.把上面创建的泛型list改为Bindlist就可以解决这个问题。来工作事件,在添加、删除或设置项目时引发。是类型列表或集合的包装器,它实现了。

2024-06-07 19:53:07 897

原创 高级参数 引用传递(out、ref、in)、params

如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候, 我们可以考虑使用out参数。out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字,以满足匹配。4.ref/out后的实参不能是只读的 ref/out/in后的实参不能是常量。3.ref,out在方法内都可以修改,且out必须修改。

2024-03-15 11:07:11 943

原创 对象简要总结

任何存在的实体都是对象,对象是真实存在的,他包括“静态特征”和“动态特征”。对象是按照这个模型,创造出来的真实“实体”,每个属性都有特定的"值"将同一类对象共有的属性、方法抽象出来,组织在一个单元中,就称之为类。静态特征:表示对象的属性,用来存储对象本身的数据。动态特征:表示对象的方法,用来说明对象能做什么。,在这个模型中,规定对象的属性和方法。软件的功能都是通过方法实现的。数据存储在对象的属性中。

2024-03-13 09:28:42 473

原创 定义一个普通类:人类Person,拥有若干属性和方法。

再定义一个普通类:河南人HenanPeople,继承ChinesePeople,并扩展若干属性和方法。再定义一个普通类:郑州人ZhenzouPeople,继承HenanPeople,并扩展若干属性和方法。再定义一个普通类:中国人ChinesePeople,继承Person,并扩展若干属性和方法。测试郑州人能否赋值给ChinesePeople类型。测试郑州人能否赋值给HenanPeople类型。实例化两个郑州人,测试相关继承的属性和方法。测试郑州人转换成HenanPeople类型。

2024-03-12 10:46:23 501

原创 定义一个静态类Math,封装如下几个静态方法,并测试方法逻辑a. 求一个整数的阶乘 Factorial(int x)b. 求n个整数的和 Sum(params int[] num

【代码】定义一个静态类Math,封装如下几个静态方法,并测试方法逻辑a. 求一个整数的阶乘 Factorial(int x)b. 求n个整数的和 Sum(params int[] num。

2024-03-12 10:43:37 444 1

原创 封装一个抽象类进行加,减,乘,除

封装一个抽象类Calc,包括加,减,乘,除四个抽象方法,定义一个类CalcImpl实现抽象类Calc,并测试相关方法逻辑是否正确。

2024-03-12 10:41:26 502 1

原创 封装一个完整的学生类

封装一个完整的学生类。

2024-03-12 10:35:03 485 1

原创 虚方法(virtual)和抽象方法(abstract)的区别

虚方法():通常用于在基类中提供通用实现,但允许子类根据需要进行覆盖,实现特定的行为。抽象方法():使用 关键字在方法声明中标记抽象方法,而且所在的类必须是抽象类(使用 关键字声明的类)或接口(接口中的方法默认为抽象的)。总之,虚方法提供了一种在基类中提供默认实现但允许子类进行覆盖的机制,而抽象方法则强制子类必须提供具体实现。虚方法():可以在基类中提供默认实现,子类可以选择性地覆盖()它,也可以直接使用基类的实现。虚方法():使用 关键字在方法声明中标记虚方法。在C#中,虚方法()和抽象方法()都用于。

2024-03-12 09:20:27 807 1

原创 c#计算闰年

如果表达式的值为 true,则说明该年份是闰年,方法返回 true;否则返回 false。这段代码实现了一个简单的功能,即判断输入的年份是否是闰年。

2024-03-07 11:29:02 955

原创 c#if、try catch、while、switch语句小练习

1. 输入两个数和运算符来计算结果。

2024-03-07 11:21:05 575

原创 c#字段、变量、属性的区别

字段用于存储数据,直接暴露在类的内部。变量是在编程中用于存储临时数据的占位符。属性提供了一种访问字段的安全方式,允许对字段进行读取和写入,并可以添加逻辑以控制访问。

2024-03-07 11:15:26 1636

原创 c#OOP面向对象(后续会继续优化)

抽象是隐藏对象的复杂性,并只显示所需的特征和行为的过程。抽象通过抽象类(Abstract Class)和接口(Interface)来实现。抽象类是一种不能被实例化的类,它定义了一组抽象方法和/或属性,需要由子类来实现。接口定义了一组方法和属性的契约,实现接口的类必须提供这些方法和属性的具体实现。抽象提供了代码重用和规范化的机制,使得代码更易于理解和维护。

2024-03-04 16:34:27 1902 1

原创 c#中的path和file

在C#中,Path类和File类都是用于处理文件和路径的实用工具类。Path类提供了一组静态方法来操作文件路径。它主要用于合并、拆分、规范化和操作文件路径的字符串。以下是一些常用的Path类提供了一组静态方法用于操作文件。它可以用于创建、复制、移动、删除以及读取和写入文件。

2024-03-02 16:21:35 2615

原创 面向对象类的继承

可以认为类是属于命名空间的。如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的 命名空间。1)、用鼠标去点3)、记住命名空间,手动的去引用。

2024-03-01 10:19:52 975 1

原创 c#常见的类型转换

## 1).任何整数类型都可以隐式转化为任何浮点型​。

2024-02-29 09:10:21 684 1

原创 面向过程-----> 面向对象

面向的是完成这件事儿的,强调的是完成这件事儿的。把大象塞进冰箱里 1、打开冰箱门 2、把大象塞进去,亲下大象的屁股 3、关闭冰箱门孙全 瘦小 矮 小屌丝 孙全踩着小板凳打开冰箱门 孙全找翟盼盼帮忙把大象塞进冰箱里,孙全踩着板凳去亲。孙全踩着板凳关闭冰箱门翟盼盼 190cm 非常大力气 1、翟自己就能打开冰箱门 2、翟自己将大象塞进冰箱里,翟可以自己亲一下。3、翟自己关闭冰箱门我们需要为每个不同的人量身定做解决事情的方法。:找个对象帮你做事儿。

2024-02-28 11:05:45 616

原创 c#数组知识

一堆相同数据类型的集合主要用来进行数据存储和数据感知,一次性存储多个相同类型的变量。语法: 数组类型[] 数组名=new 数组类型[数组长度];***数组的长度一旦固定了,就不能再被改变了。

2024-02-27 10:48:12 460 1

原创 c#通过用户输入数字判断是否为质数

GetNumber是用来判断用户输入的是否为数字,Isprime则是用来判断输入的数字是否为质数。

2024-02-27 10:44:10 644

c#+方法类+飞行棋游戏+用来练习和回顾知识点

在C#中编写一个控制面板的飞行棋游戏的方法可以带来多方面的好处: 模块化设计:使用方法可以帮助将游戏的不同功能模块分解为更小、更易于管理和测试的部分。每个方法可以负责特定的任务,例如移动玩家、检查胜利条件、处理特殊事件等。 可重用性:通过将游戏逻辑封装在方法中,可以在游戏的不同部分重复使用相同的代码。这有助于减少代码的重复性,并使代码更易于维护和扩展。 代码清晰度:使用方法可以使代码更易读、更易理解。每个方法都可以描述其功能和目的,使其他开发人员更容易理解代码的作用。 错误处理:通过将代码划分为方法,可以更轻松地实现错误处理和调试。每个方法可以独立地处理错误,并向调用方返回适当的错误信息,从而提高代码的可靠性和稳定性。 可测试性:通过将游戏逻辑分解为方法,可以更轻松地编写单元测试和集成测试。这些测试可以验证每个方法的行为是否符合预期,并帮助捕获潜在的错误和异常。

2024-03-04

空空如也

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

TA关注的人

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