- 博客(70)
- 收藏
- 关注
原创 C#灵活控制多线程的状态(开始暂停继续取消)
是一个同步基元,用于在多线程环境中协调线程的执行。它提供了两种状态:终止状态和非终止状态。在终止状态下,允许线程继续执行。而在非终止状态下,会阻塞线程,直到它的状态变为终止状态。
2024-01-12 10:01:58 1361
原创 list1.Sort((m, n) => m.Id - n.Id); id是double类型的为什么回报错
对于double类型的属性,不能直接使用减法运算符进行比较。减法运算符只能用于数值类型,而double是浮点数类型。要在double属性上进行排序,可以使用CompareTo方法或者使用自定义的比较器。
2024-01-04 15:00:39 1377
原创 使用事件机制的好处例子说明
这样做的问题是,按钮和文本框之间的耦合度变高了,按钮需要直接调用文本框的方法来显示消息,并且还需要负责弹出对话框。如果你想要在其他地方也执行弹出对话框的操作,那么也需要在其他地方重复这些代码,导致代码冗余和维护成本高。,只需要在需要让按钮执行其他操作时,将对应的事件处理程序注册为按钮的事件处理程序即可。如果你使用事件机制,你可以将弹出对话框的操作封装成一个事件处理程序,然后在需要执行这个操作的地方订阅该事件即可,如果你想要在按钮被点击时执行其他操作,比如弹出一个对话框,那么你就需要修改按钮的代码。
2023-12-26 10:05:04 113
原创 c#面试基础语法——as和is的区别
as关键字用于尝试将一个对象转换为指定类型,如果转换失败,则返回null。is关键字用于检查一个对象是否是指定类型的实例,返回true或false。需要注意的是,as和is关键字只能用于引用类型,不能用于值类型。在进行类型转换和类型检查时,应谨慎处理,以避免出现运行时错误。
2023-12-14 17:24:18 289
原创 c#面试面向对象——在项⽬中为什么使⽤接⼝?接⼝的好处是什么?什么是⾯向接⼝开发?
通过使用统一的接口方法,可以在应用程序中调用不同格式的音频播放器,实现了代码的复用。这样,不同的模块可以并行开发,并且可以使用不同的实现方式来满足接口的要求。通过面向接口开发,可以将系统分解为独立的组件,每个组件都有清晰的接口定义,并且可以根据需要进行替换和扩展。接口可以实现多态性,允许不同的对象以不同的方式实现相同的接口。这样,在调用接口方法时,可以根据实际对象的类型来执行不同的逻辑,增加了代码的灵活性和可扩展性。这样,可以在不改变接口使用的情况下,灵活地替换不同的实现,实现代码的复用。
2023-12-14 17:17:16 514
原创 c#面试基础语法——ref、out、using关键字
在C#中,ref和out都是用于向方法传递参数的关键字,它们的主要区别在于参数的初始值和在方法内部是否需要被赋值。ref。
2023-12-12 17:35:25 180
原创 c#面试基础语法——现有⼀个整数number,请写⼀个⽅法判断这个整数是否是2的N次⽅
原理:如果number是2的N次方则表示2进制位只有一位是1。如果我们将一个2的N次方的整数减去1,会得到一个所有低位都是1的数。例如,对于2的3次方的整数8,减去1得到7,其二进制表示为。取余(取模)只能判断number是不是2的倍数但不一定是2的N次方,如:6%2==0但是他并不是2的N次方。当一个整数是2的N次方时,它的二进制表示只有一位是1,其余位都是0。,如果结果等于0,则表示只有一位是1,也就是指定的整数是2的N次方。对于2的4次方的整数16,减去1得到15,其二进制表示为。
2023-12-12 09:45:40 464
原创 c#面试基础语法——byte b = ‘a‘; byte c = 1; byte d = ‘ab‘; byte e = ‘啊‘; byte g = 256; 这些变量有些错误是错再哪⾥?
'啊' 的 Unicode 编码大于 255,而 byte 类型的取值范围是 0 到 255,因此无法将其转换为 byte 类型。'啊' 的 Unicode 编码大于 255,而 byte 类型的取值范围是 0 到 255,因此无法将其转换为 byte 类型。类型的取值范围,但这里发生了一种称为整数溢出的情况。整数溢出在 C# 中是允许的,但它的行为是未定义的,意味着结果可能是不确定的。这个没有错误,byte的范围是0-255,字符'a'会隐式的转换为97因为‘a’的ASCll码为97在0-255之间。
2023-12-11 10:09:39 781
原创 C#面试基础语法——字符串中string str=null和string str=““和string str=string.Empty的区别?
1.string str=null:表示将字符串变量str设置为null,没有引用任何对象。意味着str没有指向任何一个字符串对象,是空引用,str.Split()方法会报错:System.NullReferenceException:“未将对象引用设置到对象的实例。2.string str="",是将str指向空的字符串,长度为0的字符串,没有字符的字符串,是有效的引用。3.string str=string.Empty,string.Empty是一个静态变量相当于""。
2023-12-11 09:44:58 412
原创 DCCK“启航计划“3+2第一课机器视觉导论
如:相机获取可口可乐的液面高度图片,通过连接线床给图像处理程序,程序给出合格不合格的判断再执行后续操作。用相机代替人眼去获取图像,然后处理图像,给出指令。作用:机器不会疲劳,机器判断标准明确,精度更高。
2023-12-02 13:50:17 146
原创 c#Nettonsoft.net库常用的方法json序列化反序列化
Newtonsoft.Json 是一个流行的 JSON 操作库,用于在 .NET 应用程序中序列化、反序列化和操作 JSON 数据。
2023-11-16 15:34:53 2176
原创 跨线程访问控件的操作
1.跨线程操作ui控件时如果需要立刻得到结果用Invoke同步方法如果不需要立刻得到结果可以用BeginInvoke方法2.用Action委托就好MethodInvoker委托不了解不使用。
2023-11-15 10:13:41 1017
原创 看不懂的代码系列1 lambda定义只读属性的语法糖
这种写法是从C# 6.0开始引入的一种语法糖,使得编写只读属性的语法更加简洁和清晰。符号表示Lambda表达式的开始。在这个特定的情况下,用于定义一个只读属性(或方法)的简写。这行代码可以被理解为定义了一个名为。
2023-11-15 09:31:31 87
原创 XDocument类详解
XDocument是 .NET Framework 中用于表示和操作 XML 文档的类之一,它属于命名空间。XDocument类提供了一种简洁而灵活的方式来创建、加载、操作和保存 XML 文档。下面是一些XDocument。
2023-11-14 10:06:42 356
原创 c#单例模式
单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这种模式通常用于控制资源的访问,例如数据库连接、日志记录器等。在单例模式中,类通常会提供一个静态方法或属性,用于获取单例实例。:通过私有化构造函数,阻止外部代码通过new关键字创建类的实例。:类内部维护一个静态成员变量来保存单例实例。:通过一个静态的方法或属性来允许外部代码获取单例实例。在多线程环境下,需要特别注意单例模式的线程安全性。常见的实现方式包括使用双重检查锁定、静态构造函数、Framework 提供的。
2023-11-11 10:28:52 649
原创 TCP触发海康扫码相机S52CN-IC-JQR-NNN25
通过“预览窗口”区域右上角下拉选择设备的运行模式,运行模式分为TestNormal以及Raw共3种查看属性树。选中已连接设备,在右键菜单中选择“属性树”可进入设备自身的属性树。
2023-11-11 10:02:38 2962
原创 C# 中的 SerialPort
C# 中的SerialPort类提供了对串行端口(如 COM 端口)进行通信的功能。通过SerialPort类,你可以打开、关闭端口,读取和写入数据以及设置通信参数等。
2023-11-11 09:27:54 3377
原创 出现“线程无法访问非本线程创建的资源”的错误
在WinForm中,如果你尝试在一个线程上操作另一个线程创建的控件,就会出现“线程无法访问非本线程创建的资源”的错误。这是因为Windows窗体的设计原则是单线程模型,即只有创建该控件的线程才能对其进行操作。
2023-11-10 22:13:33 495
原创 GPT问题摘录go中接口实现和继承
依然可以实现代码重用和共享的功能。此外,Go 语言中还提供了接口类型和组合类型等特性,用来替代传统继承机制,并实现更灵活、可扩展的代码设计。中字段和方法的继承。字段,表示圆形的半径。类型的数值,表示形状的面积。的接口,它只有一个方法。首先我们定义了一个名为。类型,该类型包含一个。结构体,我们实现了对。,用于计算圆形的面积。
2023-06-12 13:27:30 601
原创 Gorm连接Postgres并开启打印日志
2.grom默认只打印慢sql和错误,如果要打印所有的sql语句需要设置gorm.Config的Logger属性位loggeer.Default.LogMode(logger.Info)效果如下图。1.暂时只会用dsn 使用配置文件yaml连接postgres待补充。
2023-05-06 11:00:29 635
原创 VS快捷操作
Ctrl + K + Ctrl + S 选中的代码用这class region封装 region可以折叠并对这段代码写注释 代码更加清晰。Ctrl + K + Ctrl + F 格式化代码 快速正确排版 对其之类的 要么光标那一行 要么选择的内容。Ctrl + K + Ctrl + C 注释当前代码 选中的或者当前行的。Ctrl + K + Ctrl + U 取消注释选中的或者光标所在行的代码。propfull + Tab +Tab 在类中快速生成完整属性。prop +Tab 在类中快速生成简单属性。
2023-04-13 13:11:44 100
原创 每天1道面试题
一个方法需要传入春夏秋冬参数,就可以通过Season.spring方式传入,但是春夏秋冬本来就是int行,只要传入int就是合法的数据,需要配合注释提醒调用者1234分别代表什么,并且无法限制调用者传入其他的int数值。使用枚举就可以避免这种情况,声明enum类型后就可以直接定义枚举值,方法传入填枚举类型则可以起到限制类型和值 的效果。写一个Season类,定义常量int类型春夏秋冬用分别1,2,3,4表示。注意enum无法直接手动继承,需要声明enum表示他是枚举类型。1.有常量了为什么还要枚举?
2023-03-16 18:50:35 66
原创 数据库内连接和外连接
内连接使用关键字INNER JOIN 也可以简写成JOIN;内连接只返回两个表中匹配的数据。右外连接用关键字 RIGHT OUTER JOIN 表示,也可以简写为RIGHT JOIN。左外连接 用关键字LEFT OUTER JOIN 表示 也可以简写为LFFT JOIN。以右边的表为主,返回右表中的全部数据行,对于左表,如果没有匹配的数据则返回为空。以左边的表为主,返回左表的全部数据行,对于右表,如果没有匹配的数据则返回为空。...
2022-08-30 19:15:58 3709 1
原创 JVM------垃圾回收算法
2.需要维护空闲列表,因为清除并不是真正的抹除内存上的字节,而是把空闲内存的地址记录在空闲列表中,表明这是空闲的地址可以使用就行了!1.单例模式,在单例中引用外部对象,由于单例是静态的跟类的声明周期一样,会导致外部对象一直存在引用无法回收造成内存泄漏。2.生命周期长的对象引用了生命周期短的对象,一直存在引用无法回收生命周期短的对象造成内存泄漏。把伊甸园区和from区存活对象复制到to区,再对伊甸园区和from区进行清除!自动管理内存,降低内存泄漏和内存溢出的风险,让开发者更关注业务本身!...
2022-08-10 21:16:55 154
原创 JVM---Heap堆
1.伊甸园区不断new对象 伊甸园区满了,发生YGC,将伊甸园区和from区存活对象复制到to区,然后清理伊甸园区和from区。一个进程对应一个JVM实例,一个JVM只有一个运行时数据区,里面只有一个方法区和一个堆,所有线程共享一个方法区和一个堆,但是每一个线程都由一套本地方法栈,栈,程序计数器。频繁的GC会停掉用户线程,体验不好。绝大多数对象都是伊甸园区new出来的,但是也有例外,如果对象超出伊甸园区大小,就直接在老年区new出来了!IBM研究80%的对象都是生命周期短的,绝大部分对象在新生区就销毁了!.
2022-08-10 20:27:35 5942
原创 Java虚拟机学习-----类加载器
加载一个类的时候,自底向上检查是否加载过这个类从customClassLoader再到APPClassLoader再到EXTClassLoader再到 bootStrap classLoader,如果都哪个类加载器加载过这个类就直接返回,如果都没有,就自顶向下,委派对应的类加载器去对应的加载目录中寻找并加载类。3.常见的三种加载器 引导类加载器bootStrap classLoader 加载jre中的rt.jar 扩展类加载器。可以对number赋值,但是不能调用否则会报错:非法的前向引用!...
2022-08-09 21:19:56 172
原创 静态代码块static
类加载阶段结束后,进入链接阶段 (验证 准备 解析) ,静态变量再链接阶段的准备过程中就分配了内存空间并赋值为默认值 0。执行顺序: 静态代码块只执行一次,成员变量和实例初始化块在每次构造方法之前执行一次,每new一个对象都会这样执行一次。类加载的时候所有的static变量,static代码块按照书写顺序执行一遍。类加载时所有的static变量,static代码块按照书写顺序执行一遍。实例初始化块,调用构造方法之前执行一次,new对象就执行一次。顺序是,静态代码块,实例初始化块,构造方法。...
2022-08-09 19:55:30 504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人