- 博客(83)
- 收藏
- 关注
原创 线程任务实现暂停、继续及ListBox实现多选
string[] files = Directory.GetFiles("D:\\BaiduNetdiskDownload\\图灵工控二期:视觉运控深度学习\\001 课程代码\\Halcon 联合 C# 开发\\pic");SelectionMode属性决定了用户可以选择多少项以及如何选择这些项。对于你的需求,即允许用户通过按住Ctrl键进行多项选择,你应该将SelectionMode设置为MultiExtended。//读取完文件直接跳出循环。设置为有信号状态,让等待的线程继续执行。
2025-03-07 22:30:15
676
原创 App.Current.Services.GetService<UserView>()无限循环
代码无线循环UserViewUserView。新实例的构造函数将再次被调用,进而再次调用InitData(),这又会尝试获取一个新的UserView实例,从而形成一个无限循环,最终导致堆栈溢出或程序崩溃。当您时,UserView例如通过或其他生命周期管理方式),UserView,除非该服务已经存在一个实例。然而,在默认情况下,WPF 控件如(包括UserView)通常不会直接作为服务注册到依赖注入容器中。如果UserViewnull而不是创建新的实例。但如果您确实以某种方式注册了UserView。
2025-01-31 00:40:19
152
原创 使用XAML语言仿写BiliBil登录界面
Border中的CornerRadius圆角元素和Margin外边距元素的值的顺序,左,上,右,下。元素在WPF中用于绘制一个椭圆形或圆形(当宽度和高度相等时)。代码片段创建了一个宽高均为25像素的圆形,并使用。是一种布局面板,它允许你通过显式设置元素的。来填充这个圆形,使得圆形内部显示为图片。这一行代码的作用是将一个。属性来精确地定位子元素。适用于需要绝对定位的场景。
2025-01-07 21:44:47
316
原创 WPF通过反射机制动态加载控件
是 .NET 提供的一个静态方法,它属于System命名空间。此方法通过反射机制根据提供的类型信息(在这里是)创建该类型的实例。在这个上下文中,属性的类型是,它代表了 .NET 中的一个类型对象。当我们将传递给方法时,我们实际上是将这个Type对象传递过去,// 定义一个公共属性 SubTLWindows,用于存储关联的窗口类型。// 这个属性允许在 XAML 中通过绑定设置为特定的 Window 类型。set;// 重写 OnClick 方法,以便当按钮被点击时执行自定义逻辑。
2025-01-05 22:34:43
672
原创 Task中的锁机制Lock使用
多线程中的“锁”,多线程任务执行的时候,我们可以认为这些线程是执行的。如果多个线程,同时访问一个,如果没有执行完,其他线程进来同时使用这个资源,就会造成资源的“争夺”。程序会出现问题。可能得不到你要的结果。所以,使用线程锁,在一个线程使用一个资源的时候,其他线程必须等待。也就是“排队”。
2024-12-19 20:48:37
424
原创 C#中的匿名方法、Lambda表达式、泛型委托
1、为什么要使用泛型委托?普通委托在数据类型的限定上非常严格,有时候我们的需求是变化的,可能就适应不了。2、泛型委托定义:本质上和泛型方法是非常相似的,泛型委托关联的时候,可以是具体方法、匿名方法,也可以是Lambda表达式。//定义泛型委托//定义泛型委托变量Console.WriteLine("自定义泛型委托1:10+20="+myDelegate1(10,20));
2024-12-19 20:46:55
787
原创 事件 event
好处:避免用户对事件直接操作,比如Click事件,如果允许Click=null,会把底层代码清除。程序优秀:(健壮性)代码规范、技术综合运用好(简化、好的技术点、扩展性...)-->不容易出问题。【2】接受者(Receiver):就是事件的处理者,在事件发送者触发事件后,自定执行的代码。第一、事件无法在“外面”赋值。比如“对象.事件=null”,会出现编译错误,而委托可以。【1】发送者(sender):也就是用来激发事件,通知所有的接受这接受消息。【2】事件必须使用+=或-=,不能直接=赋值。
2024-12-18 23:37:04
510
原创 委托 delegate
委托和类平级 ,注意书写 ,方法写在类中,语句写在方法中委托的位置是无关紧要的 但要是公共的将子窗口的委托变量声明为private时 在父窗口是无法访问到该变量的。
2024-12-18 23:31:15
203
原创 Task任务的三种启动方式和对比选择
总的来说,如果你只需要简单地启动一个后台任务并且不需要额外配置,Task.Run是最简便的选择。如果你需要更多的控制和配置选项,那么是更好的选择。而直接创建Task并调用Start()的方法通常不是首选,除非有特殊原因需要这么做。
2024-12-15 23:00:16
595
原创 C#异常处理
在程序运行过程中,干扰程序正常运行时产生的错误称为异常。在程序编译时产生的错误,通常由错误的语法或使用的资源不存在等原因引起。逻辑错误,不影响程序的正常运行,但会导致实际运行结果与预期结果不一致。任何完美的应用程序和技术高明的程序员,都不能保证程序绝对不出差错,所以我们需要异常处理。try语句块如果发生异常,会在多个catch中寻找相应的异常类型,进入到相应catch代码块中。处理当方法指向超出范围的数组索引时生成的错误。处理当数组类型不匹配时生成的错误。处理当依从一个空对象时生成的错误。
2024-12-14 18:44:18
409
原创 单例模式的简单应用
即点击"单例模式“菜单,当唯一对象不存在的时候,会创建一个窗体,但是当窗体已经。如上图,我们只要点击一次"普通模式"的菜单,即会创建一个新的窗体对象。我们通过如下示例来了解单例模式的作用,以及实现方案。单例模式主要是为了确保只有单个对象被创建,存在的时候,将不会创建新的窗体。
2024-12-14 18:41:39
516
原创 序列化与反序列化
序列化就是将对象实例的状态存储到存储媒介的过程。序列化实现对对象信息的永久性存储。反序列化就是读取文件的过程提供了一个<T>进行反序列化时,
2024-12-13 22:43:11
407
原创 C#/Winfrom -文件操作
点击"打开文件"按钮,选择一个文本文件,并且将文本文件路径显示在上面单行文本框中,将文本文件的内容显示在下面的多行文本框中。点击”移动文件夹"按钮,将第一个文本框路径的文件夹移动到第二个文本框路径的文件夹下。点击”选择文件夹一"按钮:可以选择一个文件夹,并且将文件夹的路径显示在第一个文本框。点击”选择文件夹二"按钮:可以选择一个文件夹,并且将文件夹的路径显示在第二个文本框。文件是在各种媒质上永久存储的数据的有序集合。点击”选择文件夹一”按钮,选择文件夹,并把文件夹路径显示在第一个文本框。
2024-12-13 22:40:52
2181
原创 Winfrom 基础控件二
(1)用于显示具有层次结构的数据(2)由层叠的节点(Node)分支构成,每个节点由图像和标签组成(3)每个TreeView控件均包含一个或多个根节点,根节点下面包含多个子节点,子节点下面还可以包含子节点(4)包含子节点的节点可以展开或折叠TreeView控件的常用属性:属性说明Name获取或设置控件的名称Dock控件在父容器中的停靠方式NodesTreeView控件根节点集合获取或设置当前TreeView控件中选定的树节点lmageList。
2024-12-12 12:43:30
871
原创 Winform 多窗体应用
完整的Windows应用程序通常具有多个业务模块,不可能在一个窗体界面内实现。实现这些业务模块需要多个窗体界面,在每个窗体界面中实现相应的功能。
2024-12-11 13:11:58
653
原创 031 委托,Lambda表达式,LINQ串讲
委托类型,本质就是一种数据类型,是一种特殊的类类型实践过程中调用委托大部分都是dele1();像一个函数一样调用委托。
2024-12-11 12:03:18
378
原创 刘铁猛C#入门 030 泛型,partial类,枚举,结构
为什么需要泛型:避免成员膨胀或者类型膨胀一些例子实现学生类时:Student student = new Student();实现了特化的泛型接口类时,实现类不需要声明为泛型类实例化学生类时:Student student = new Student();泛型委托。
2024-12-06 23:06:59
380
原创 刘铁猛p3 C# 控制台程序引用System.Windows.Forms报错,无法引用程序集 解决方法
为什么控制台应用添加项目引用里面为什么找不到任何项目,同时从com里面加的引用会出现警告?学习刘铁猛老师c#入门详解第三集 引用System.Windows.Forms时报错了。
2024-12-06 23:02:45
651
5
原创 刘铁猛C#入门 028 接口 依赖反转 单元测试
语言对面向对象设计的内建支持:依赖反转(解耦),接口隔离,开闭原则....接口的产生:自底向上(重构),自顶向下(设计)C#中接口的实现(隐式,显式,多接口)
2024-11-25 21:24:08
100
原创 刘铁猛C#入门 027 抽象和开闭原则
接口是完全未实现逻辑的“类”(“纯类”,只有函数成员;抽象类是末完全实现逻辑的类(可以有字段和非public成员,它们代表了“具体逻辑”)它们都不能实例化,只能用来声明变量、引用具体类(concrete class)的实例。接口是一个“协约”,早已为工业生产所熟知(有分工必有协作,有协作必有协约)具体类→抽象类>接口:越来越抽象,内部实现的东西越来越。封装确定的,开放不确定的,推迟到合适的子类中去实现。抽象类里面不一定是抽象方法,抽象方法一定在抽象类。接口为解耦而生:“高内聚,低耦合”,方便单元测试。
2024-11-23 20:49:50
364
原创 刘铁猛C#入门 026 重写与多态
重写示例静态绑定(早期绑定)当您调用一个非虚方法时,编译器在编译时就已经确定了调用哪个方法。即使您通过基类的引用指向一个派生类的对象,编译器也会根据引用变量的类型来决定调用哪个方法。这种绑定方式被称为静态绑定或早期绑定。动态绑定(晚期绑定)当您调用一个虚方法时,实际调用哪个方法取决于对象的实际类型,而不是引用变量的类型。这意味着,即使您通过基类的引用指向一个派生类的对象,最终调用哪个方法是在运行时决定的。这种绑定方式被称为动态绑定或晚期绑定。
2024-11-23 20:48:22
498
原创 System.Data.SqlClient.SqlException:““刘”附近有语法错误 模糊查询报错
前面两段sql都是再数据库中写的 没有问题了再加代码里面 ,模糊查询直接在代码里面写的。就是拼接模糊查询的sql出问题 ,看上去并没有写错 使用了% 进行模糊查询。进行模糊查询时sql 异常 以下是当时sql代码da。
2024-11-14 10:58:13
187
原创 C#入门 020 事件(类型成员)
定义:单词Event,译为“事件”角色:使对象或类具备通知能力的成员使用:用于对象或类间的动作协调与信息传递(消息推送)原理:事件模型(event model)中的两个"5"发生>响应”中的5个部分--闹钟响了你起床、孩子饿了你做饭.…这里隐含着“订阅”关系"发生→响应"中的5个动作--提示。
2024-11-11 22:44:31
907
原创 C#入门 019 委托 delegate
委托是一种类(class),类是数据类型所以委托也是一种数据类型它的声名方式与一般的类不同,主要是为了照顾可读性和C/C++传统注意声明委托的位置避免写错地方结果声明成嵌套类型声明在namespace里面 与其他类同级委托与所封装的方法必需“类型兼容“返回值的数据类型一致参数列表在个数和数据类型上面一致(参数名不需要一致 )
2024-11-11 22:38:41
1011
原创 C#入门 018 传值、输出、引用、数组、具名、可选参数、扩展方法(this)
声明时不带修饰符的形参是值形参。一个值形参对应于一个局部变量,只是它的初始值来自该方法调用所提供的相应实参允许方法将新值赋给值参数。这样的赋值只影响由该值形参表示的局部存储位置,而不会影响在方法调用时由调用方给出的实参。值参数包括 引用参数。
2024-11-09 14:53:13
688
原创 C#入门 017 字段,属性,索引器,常量
字段(field)是一种表示与对象或类型(类与结构体)关联的变量字段是类型的成员,又称“成员变量,写在类体里面与对象关联的字段亦称“实例字段,表示某个对象的状态与类型关联的字段称为“静态字段”,由static修饰,表示某个类(类型)的状态属性(property)是一种用于访问对象或类型的特征的成员,特征反映了状态属性是字段的自然扩展从命名上看,field更偏向于实例对象在内存中的布局,property更偏向于反映现实世界对象的特征。
2024-11-09 14:51:25
1268
原创 C#入门013 表达式,语句详解 2
程序所执行的操作是通过语句来表达的。常见的操作包括声明变量、赋值、调用方法、遍历集合以及根据给定的条件转向另一个代码块。程序中语句执行的顺序被称为控制流或执行流。控制流可能在每次程序运行时都会有所不同,这取决于程序对运行时接收到的输入的反应。简而言之:陈述算法思想,控制逻辑走向,完成有意义的动作C#语句都是以;结尾,但分号结尾不一定是语句语句一定出现在方法体里。
2024-11-06 12:28:29
450
原创 C#WinForm案例 无法拒绝的表白
4、实现当用户点击两个按钮中任意一个的时候,提示"就知道你喜欢我!使用 button,label 控件绘制界面 点击属性Text编辑文本,3、编辑点击右上角关闭按钮提示功能 阻止用户关闭。MouseEnter事件当鼠标移动至控件是触发。在窗口类中编写按钮文本修改功能代码 使用。修改Form属性Icon更换图标。事件 ,当窗口关闭时触发。
2024-11-06 00:29:18
355
原创 C#入门 013 表达式,语句详解 1
表达式是由一个或多个操作数以及零个或多个运算符组成的序列,它可以被计算为单一的值、对象、方法或者命名空间。算法逻辑的最小单元,表达了一定的算法意图因为操作符有优先级,所以表达式也有。
2024-11-04 15:36:45
427
原创 011 操作符详解 中
new操作符 中的实例初始化器当对某个对象访问为一次性的情况,没有必要创建对象引用实例new操作符创建实例,用初始化器初始化它的属性,然后用 . 调用(访问)它的方法一段时间后被垃圾回收期回收使用new为匿名类型创建匿名对象,并且用var 隐式的应用这个实例 该类型GetType()无法识别new操作符有一定危险性大型程序中为避免new操作符造成紧耦合 使用依赖注入的设计模式使耦合变松new 关键字可以隐藏父类中的方法 ,使子类调用自身方法 不常见。
2024-10-26 20:50:18
565
基于Hadoop的文件词频统计的实现(大数据技术课程设计)
2024-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人