2024-02-27 09:09:52
勇哥注:我们知道,当强制进行重新编译时,vs会删除bin目录的文件重新生成。如果这个时候你的代码不幸有地方编译错误,那么恭喜你,你再也不可能编译成功了,因为此时bin目录下的dll已经都删除了,因为依赖关系,此时你解决了编译错误也没有用。还有一种情况,是某个dll,在vs进行增量编译时,会被vs删除,但是这个dll又不是C#的dll,而是某个c++或者c的dll。这种情况下,会发生运行期报错。要解...
2024-02-24 17:16:11
在vs 的团队管理器中,中出现 conflict prevents checkout错误不要相信网上那些办法。其原因是:1。 要么是你有些更改没有commit2。 要么是你要删除掉未跟踪的文件右键菜单删除/排除 就行了...
2024-02-24 16:58:03
(一)批处理风格结构电子商务网站交易数据处理:电子商务网站每晚可能需要处理数百万笔交易数据,以生成销售报告、更新库存和客户账户。这些数据处理任务可以通过批处理风格结构实现,其中每个处理步骤都是一个独立的程序,顺序执行,确保数据完整性并以整体方式传递。批量图像处理:在图像处理领域,批处理风格结构常用于一次性处理大量图像文件。例如,摄影工作室可能需要批量调整照片大小、应用滤镜和重命名文件,以准备批量发...
2024-01-22 15:36:11
在进行连续插补的时候,用户在每段运动轨迹中,都可以添加多组io操作,包括普通的IO控制,及精确的PWM/PSO输出控制。运动控制卡中的PWM一般用于控制电机的速度和位置,实现精确的运动控制。PWM应用一:电机调速电机的调压调速和PWM调速是两种不同的电机控制方式。调压调速:调压调速是通过改变电机输入电压的大小来控制电机的转速和扭矩。通过调节电压,可以改变电机的转矩特性和转速。这种调速方式适用于直流...
2024-01-15 10:07:45
控件和对象双向数据绑定实现结果:1. 对象值 -> 控件值2. 控件值 -> 对象值演示代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
usin...
2024-01-09 08:00:04
先引用下异常在功能上的标准说明:异常是在程序执行期间出现的问题。
C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。
异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。
C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。
try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块...
2024-01-05 15:27:38
在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke解决办法:使用下面红框所示的卫语句即可。详细原理见下面贴子说明:http://www.skcircle.com/?id=1978 --------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原创文章,转载请附上博文链接!...
2024-01-03 15:32:58
勇哥注:此为引用文章,见:https://zhuanlan.zhihu.com/p/35680070文章尾有勇哥的阅读注释。MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性、可移植性,代码的可重用性。MVC即Model、View、Controller即模型、视图、控制...
2024-01-02 13:12:51
勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...
2023-12-23 20:33:41
(一)什么是架构 首先,我们从架构层面大致可以分为:系统架构和应用架构。 所谓的系统架构,也是我们通常所说的网络架构;而应用架构也就是我们所说的代码架构。(二)为什么需要架构 以前系统简单,一个应用部署在一台服务器上,且大部分开发工作是CRUD,应用结构简单,且易于维护。随着系统业务复杂度越来越高,功能模块越来越庞大,耦合度也越来越高,导致系统的复杂度越来越不可控。 为了更...
2023-12-23 12:00:13
比较三层架构和MVC的区别(一)在实施层次上的区别:MVC是三层架构中的UI层的一种表现模式,它将UI层再度进行了分化,分成了模型、视图和控制器三个部分。MVC模式的目标是将前端和业务逻辑代码和数据分开,使得前端和业务逻辑可以独立地进行开发和重用。三层架构则是一种更为广泛的软件体系架构设计,它将整个业务应用划分为数据访问层、业务逻辑层和表示层。各层之间通过接口进行通信,降低了耦合度,便于代码的维护...
2023-12-23 08:16:36
常见的编程范式包括:面向对象编程(OOP)面向过程编程(POP)面向切面编程(AOP)如函数式编程(Functional Programming)事件驱动编程(Event-driven Programming)响应式编程(Reactive Programming)声明式编程(DP)数据驱动编程(Data-Driven Testing)(一)面向对象编程(OOP)的优缺点优点包括:代码重用和可维护性...
2023-12-22 13:53:16
MVC是为了解决用户界面和业务逻辑之间的耦合问题在早期的软件开发中,用户界面和业务逻辑通常是紧密耦合在一起的,这导致了代码的可维护性和可扩展性的问题。为了解决这个问题,MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型(Model) 负责处理应用程序的数据和业务逻辑。 它包含数据和数据的操作方法,可以独立于用户界面进行测试...
2023-12-22 08:47:10
勇哥注:这种错误,就是你的.net Framework版本低了。貌似这个netstandard2.1.0.0 要求的是.net5.0了。具体.net对应这个netstandard的版本见微软说明:https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-1 看到划线部分,已经明确说明.net...
2023-12-19 08:16:56
勇哥注:这篇讨论一下async、await异步编程的异常处理特点。(一)首先,我们要知道传统的后台线程,你得自己处理异常,否则线程会把异常吐掉看示例 :using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
n...
2023-12-18 17:34:14
“异常设置” 窗口在 C# 中支持通用异常类型.设置vs>“调试”>“Windows”>“异常设置”搜索OperationCanceledException异常,然后将该异常打勾中断调试器中断时,会显示引发异常的位置。添加或删除添加或删除自定义异常 还原要将异常设置还原为默认值,请选择“将列表还原为默认设置” 继续执行如果使用仅我的代码调试 .NET 或 JavaScript 代...
2023-12-15 20:51:20
执行下面的程序,出现这个异常,why?原因是: await Task.Delay(50,_token); 这句传入了_token,用户取消时会触发_token.ThrowIfCancellationRequested();这个时候,下面的if不会命中,而是直接向调用者抛异常。 if (_token.IsCancellationRequested)如果写成await Task.Delay(50)...
2023-12-15 16:06:13
下面代码如果不使用Lambda表达式,自己写一个函数findobj,你会发现一个问题。就是if (data.ToString() == "1") return true; 这句是写死的字符串,它应该是个变量。但是为啥系统的List.Find定义的委托偏偏是下面这样的原型呢?public delegate bool Predicate<in T>(T obj);为啥不...
2023-12-14 10:52:55
委托认知的三个层次在勇哥看来,委托认知有下面这个层次。保存函数引用,可以做为函数参数认识到这一点的人,看过书,了解基本的使用规则。委托在类和方法中充当桥梁的作用认识到这一点的人,可以正确的使用委托,了解委托的常见使用场景。但是还看不出来他是不是会面向对象程序设计....委托让程序扩展性更好、耦合度更低 、是开闭原则、控制反转等思想的实现手段认识到这个层次的人,不光对委托非常熟悉,而且有丰富的面向对...
2023-12-14 10:27:50
利用多播委托可以消除if或者switch。其原理如下:多播委托类似于交换机的广播。192.168.1.255这个地址在C类私有网络中是一个广播地址。广播地址用于向本地网络中的所有设备发送数据包。
当一个设备向192.168.1.255发送数据包时,该网络中的所有设备都会收到这个数据包。下面代码中的if判断则是在广播的接收端加入了协议判断,只有符合协议的站点进行了回应。源码:using Syste...
2023-12-09 09:33:38
和AI聊了些现在的大语言模型及其它模型的话题,蛮有意思的,这里记录下来大家把玩一下:大语言模型回答问题时,是在现有资料库的内容上通过统计、分检得到的内容,还是说是真正理解了内容然后说的解决答案?前的大语言模型主要是基于Transformer架构和大规模的语料库进行训练,通过预测下一个词的概率来生成文本。它们可以在大量的文本数据中发现模式和规律,并根据这些模式和规律来生成新的文本。回答问题时,大语言...
2023-12-08 16:07:55
勇哥注:想了解异步编程,大家可以从下面这两方面入手:
(1)生活当中异步处理的例子
注意跟异步跟中断处理的区别
(2)编程方面的应用
1。I/O操作
2。UI交互
3。计算密集型任务
4。 并行编程
异步操作主要用于提高应用程序的响应性能和处理能力控制台的一个小例子这个例子让你快速了解C#异步编程中 async,await...
2023-12-08 14:26:42
C# 的多播委托十分有用,可以用于下面的应用:(1)异常处理:可以将多个异常处理方法链接在一起,以便它们可以按顺序处理异常。 当第一个方法抛出异常时,后续的方法仍然会被调用。(2)条件判断:可以使用多播委托来实现条件判断逻辑, 例如根据不同的条件将不同的方法链接在一起,按顺序执行。(3)消息传递:可以将多个消息处理方法链接在一起,以便它们可以按顺序处理接收到的消息。...
2023-12-07 17:12:43
编写一个插件系统需要考虑以下几个方面:插件接口:定义插件系统的接口,即插件需要实现的功能和规范。这包括插件的输入、输出和处理方式等。插件注册:在系统中注册插件的方式和方法。通常可以通过配置文件、代码注入或特定机制进行插件注册。插件加载:在系统启动或需要使用插件时,加载和实例化插件的方式和方法。插件通信:实现插件之间的通信和数据交换,包括插件之间的依赖关系、事件通知等。插件管理:对已加载的插件进行管...
2023-12-07 14:21:49
勇哥注:需求是,一个服务端的进程,通过外部进程传入的字符串,执行对应的运动卡的api。因为不同运动卡的api加上一起,会有数千个if或者case语句进行判断。我们怎么去掉这上千个判断语句呢?下面是使用策略模式实现的效果:因为api原型都是返回值为int,函数参数中的数量是不一样的。勇哥这里按参数数量不同来包装成不同的策略。这样处理后runAPI的几个子类中的case语句还是必须有的。另外,策略模式...
2023-12-07 07:55:52
下面这段代码,会报一个错误:k.Bind<DALInterface>().To<SqlserverUserDAL>().Named("SqlServer");
k.Bind<DALInterface>().To<AccessUserDAL>().Named("Access");
var ord = k....
2023-12-04 11:43:37
适配器模式,代理模式,装饰器模式有什么区别?当你在编写代码时,需要扩展一个类的功能,或者是当前类的接口不能满足需求时,你会选择怎么做?重新编写子类,通过继承加入功能?修改原有类的接口使其符合现有环境?但你会发现这些改动是不完美的,它们并不符合面向对象的「开放-关闭原则」。开放-关闭原则: 对扩展开放,对修改关闭在软件设计模式中有一个更好的答案——包装。今天介绍的四种设计模式都围绕着“包装”展开,那...
2023-12-01 16:08:19
模板方法模式的定义:一个方法定义一个算法的骨架 ,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种行为型模式,当执行某个操作的步骤基本上是固定的是,可以使用模板方法模式。模板方法模式定义了一个算法框架,将一系列具体的操作交给子类中去实现。可以在不改变模板框架算法的情况下,灵活的扩展改变每一步的具体实现。模板方...
2023-12-01 16:04:45
控制反转(Inversion of Control,IoC)并没有成为第24种设计模式,因为它不是一种具体的设计模式,而是一种编程思想或原则。控制反转是一种重要的编程概念,它是很多设计模式的基础和指导原则,包括依赖注入、工厂模式、模板方法模式等。控制反转的核心思想是将程序的控制权从具体的实现类中转移出来,交给一个外部的控制器或容器来管理。这样做的好处是可以降低代码之间的耦合度,提高代码的可扩展性和...
2023-11-30 16:55:04
代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理或占位符,以控制对该对象的访问。代理模式常用于在不影响客户端代码的情况下,对目标对象进行访问控制、增加额外操作或延迟加载等。下面是一个简单的演示:using System;
using System.Collections.Generic;
using System.Linq;
using System.T...