![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
ou.cs
这个作者很懒,什么都没留下…
展开
-
C# 多线程 CancellationTokenSource简单应用示例
【代码】C# 多线程 CancellationTokenSource简单应用示例。原创 2024-06-20 13:32:26 · 21 阅读 · 0 评论 -
WPF Frame 简单页面切换示例
【代码】WPF 简单页面切换示例。原创 2024-06-06 17:00:19 · 430 阅读 · 0 评论 -
WPF 按键图标转动效果示例
【代码】WPF 按键图标转动效果示例。原创 2024-06-06 10:24:08 · 491 阅读 · 0 评论 -
WPF 按键图标缩放动画示例
【代码】WPF 按键图标缩放动画示例。原创 2024-06-06 10:20:19 · 519 阅读 · 0 评论 -
wpf 依赖属性的含义理解
由于控件有很多的属性,有属性就有字段的内存开销,但实际上对于一个控件,我们大多数只会使用其部分常用属性,比如Button我们最常使用Content,Height等属性,那些不经常使用的属性相当于白白占用着内存。当我们写一个复杂的XAML页面,涉及到很多控件的使用时,这种浪费内存的现象就很严重。,可以通过Binding绑定到其它对象的属性或者说数据源上,从而获得值。5)验证属性的回调函数ValidateValueCallback【可选】3)拥有该属性的所属类型。Register参数。原创 2024-05-31 16:55:42 · 325 阅读 · 0 评论 -
C# 文件夹拷贝
终于找到了一个大佬写的非常实用。转载 2024-05-30 08:46:54 · 18 阅读 · 0 评论 -
c# 表达式树进行深拷贝 示例
常见的序列化或者继承接口进行深拷贝使用非常不方便。转载 2024-05-16 10:32:13 · 31 阅读 · 0 评论 -
C# 线性插值
传感器数据处理:在传感器数据处理中,可能会出现数据点不连续或不均匀的情况。使用线性插值可以根据已知的数据点来估算在两个数据点之间的数值,从而填补数据中的缺失或不连续之处。运动学模型:在线性运动学模型中,可能需要根据已知的位置数据来估算物体在不同时间点的轨迹或位置信息,线性插值可以帮助实现这一目标。信号处理:在数字信号处理中,线性插值可以用来估算信号在离散时间点之间的数值,从而平滑信号或填充信号中的缺失值。数值模拟:在线性数值模拟中,线性插值可以用来逼近复杂函数的数值输出,从而简化数学模型的计算过程。原创 2024-03-01 11:05:06 · 455 阅读 · 0 评论 -
WPF 解决TabControl选项卡过多导致无法一次完全显示在屏幕上问题
【代码】WPF 解决TabControl选项卡过多导致无法一次完全显示在屏幕上问题。原创 2024-02-28 16:13:38 · 238 阅读 · 0 评论 -
C# 字节数组 二进制和16进制互转
【代码】C# 字节数组 二进制和16进制互转。原创 2024-01-29 18:59:35 · 257 阅读 · 0 评论 -
C# 判断某个数/某组数,是否在一定的(某组)范围内,适配多种类型
然后使用 LINQ 方法 All() 遍历 range 中的每个元素 x,检查其是否在阈值范围内,即是否满足 (x.CompareTo((T)(dynamic)(threshold + offset)) = 0) 的条件。将两个列表进行逐对组合,然后对每对数据进行判断是否在对应的阈值范围内。这两个方法可以用于校验给定数据列表中的数据是否满足指定的阈值要求,并通过提供的委托进行结果处理。原创 2024-01-29 18:53:21 · 608 阅读 · 0 评论 -
c# 文件操作 判断路径是否存在,不存在对路径上所有文件进行创建
【代码】c# 文件操作 判断路径是否存在,不存在对路径上所有文件进行创建。原创 2024-01-19 10:23:12 · 508 阅读 · 0 评论 -
C# QuartzHelper 封装Quartz 简化操作流程
【代码】C# QuartzHelper 封装Quartz 简化操作流程。原创 2024-01-18 15:18:41 · 649 阅读 · 0 评论 -
wpf DataGrid 实现拖拽变换位置,双击拖拽向下自动滚动
【代码】wpf DataGrid 实现拖拽变换位置,双击拖拽向下自动滚动。原创 2024-01-17 14:53:09 · 1070 阅读 · 0 评论 -
c# 派生类没加 : base报错原因
这是因为在派生类的构造函数中,基类的构造函数必须首先被调用,以便初始化基类的部分。如果派生类没有显式地调用基类的构造函数,编译器会尝试插入一个无参数的 base() 调用。然而,如果基类不具有无参数的构造函数,那么编译器将无法找到匹配的构造函数,从而导致编译错误。在 C# 中,如果派生类的构造函数没有显式地调用基类的构造函数(使用 base 关键字),而基类又没有定义无参数的构造函数,则会导致编译错误。原创 2024-01-15 19:24:03 · 404 阅读 · 0 评论 -
c# _表示未使用的变量引用
为了解决这个问题,C# 8.0 引入了一个新的功能,可以使用下划线 _ 来表示一个未使用的变量。这样,你可以明确地告诉编译器,该变量是有意为之未使用的,从而避免生成警告。在以前的 C# 版本中,如果你声明了一个变量但没有使用它,编译器会生成一个警告,提示该变量未使用。这可能会导致代码中出现不必要的警告。在 C# 8.0 中,下划线 _ 还引入了新的用途,用于表示未使用的变量引用。需要注意的是,这种用法主要适用于在某些情况下确实需要声明一个变量,但实际上不需要使用它的情况,例如在模式匹配时声明临时变量。原创 2024-01-12 14:57:51 · 521 阅读 · 0 评论 -
C# 当应用程序路径下(不同文件夹)存在多个同名dll,运行时它会引用哪一个呢?
这个加载顺序通常是基于操作系统和 .NET Framework 的规范,但一般来说,首先搜索会先找到的 DLL 文件,然后是子目录中的 DLL 文件。如果希望明确指定应用程序加载哪个具体的 DLL 文件,可以使用 AssemblyResolve 事件来进行自定义程序集解析逻辑,从而控制应用程序加载 DLL 的行为。最终,程序集加载器会根据搜索的顺序尝试加载 DLL 文件,通常会选择第一个匹配到的 DLL 文件来进行加载。首先,程序集加载器会搜索应用程序的当前工作目录,其中包括应用程序本身所在的目录。原创 2024-01-12 14:36:08 · 448 阅读 · 0 评论 -
C# Guid生成唯一值用例
在 C# 中,可以使用 Guid 结构来为每个对象生成唯一的标识符。你可以在对象的构造函数中为其生成一个唯一的 Guid,并将其作为对象的属性存储在对象中。Guid 结构体的未初始化时,默认值是 Guid.Empty,这个属性表示一个空的 Guid,其值为全零(即所有位都为零)原创 2024-01-12 11:06:15 · 672 阅读 · 0 评论 -
C# 关于当ObservableCollection增删查改元素时,触发事件用例
ObservableCollection 类提供了一种实时监测集合变化的机制,可以通过订阅 CollectionChanged 事件来响应集合的添加、移除和重置等变化。在 ObservableCollection 中,如果你更改了集合中的元素,例如修改了元素的属性,这将会触发 CollectionChanged 事件。但是如果你只是替换了集合中的元素(即通过索引直接赋值),这将不会触发 CollectionChanged 事件。原创 2024-01-12 11:04:00 · 993 阅读 · 0 评论 -
WPF Converter转换器
在 WPF 中,Converter 通常用于在数据绑定过程中执行值的转换。你可以创建自定义的 Converter 类来实现数据的转换逻辑,然后在 XAML 中使用这个转换器。数据绑定时,值会先经过 Converter 的转换逻辑,然后再显示在 TextBlock。在 XAML 中,声明 Converter,并将它应用到数据绑定中。接口的转换器类,实现。原创 2024-01-12 09:07:55 · 935 阅读 · 0 评论 -
WPF Border
除了 BorderBrush、BorderThickness 和 Background 属性之外,Border 还提供其他属性,例如 CornerRadius(用于指定边框的圆角半径)和 Padding(指定边框内边距)。在上述代码中,Border 的内容将与边框之间有 10 像素宽度的空白区域,使内容在控件内部有一定的间距,同时也可以使内容不与边框重合。属性用于指定控件内容和控件边框之间的空白区域大小。在 WPF 中,Border 是一种常用的控件,用于给其他控件提供边框和背景效果。原创 2023-12-24 09:24:09 · 850 阅读 · 0 评论 -
WPF StackPanel
StackPanel是一个控件容器,它按照一个方向(水平或垂直)堆叠子元素,使得它们沿一个轴线对齐。在WPF中,StackPanel通常用作布局的容器控件,用于将其他控件组织成一列或一行。除了方向之外,StackPanel还支持其他一些属性,如水平/垂直对齐方式、子元素间的间距和子元素的拉伸行为等。这将创建一个垂直的StackPanel,其中包含三个文本框,它们将按顺序列成一列。这将创建一个水平的StackPanel,其中包含两个按钮,它们将在中心对齐,并在它们之间留出10像素的外边距。原创 2023-12-23 08:27:35 · 766 阅读 · 0 评论 -
WPF Halcon机器视觉和运动控制软件通用框架,插件式开发,开箱即用 仅供学习!
参考easyvision开发,集成几十个软件算子此版本以添加ui设计器。具体功能如上所示,可以自定义变量,写c#脚本,自定义流程,包含了halcon脚本和封装的算子,可自定义ui,通过插件形式开发很方便拓展自己的功能。原创 2023-12-20 08:03:04 · 815 阅读 · 0 评论 -
Halcon 螺丝孔位定位
要输出的偏移量:工具末端世界坐标-目标坐标。相对偏移: 孔位世界坐标 - 标定坐标。目标坐标:圆心世界坐标+相对偏移。原创 2023-12-01 19:35:33 · 424 阅读 · 0 评论 -
c# 责任链模式
在这个示例中,请求从 handlerA 开始,如果 handlerA 能够处理请求,则处理请求并结束。否则,请求会传递给下一个处理者 handlerB,如果 handlerB 能够处理请求,则继续处理请求并结束。通过责任链模式,可以动态地构建处理请求的链,使得请求的发送者和接收者之间解耦,提高代码的灵活性和可维护性。请注意,在实际应用中,需要根据具体情况设计和组织责任链,确保每个处理者尽量只处理自己负责的请求。责任链模式是一种行为型设计模式,它允许多个对象按照链式结构处理请求,直到有对象能够处理请求为止。原创 2023-11-28 11:00:19 · 561 阅读 · 0 评论 -
C# 适配器模式
在这个示例中,适配器 CircleAdapter 继承了 Adaptee 类,同时实现了目标接口 ICircle。这样一来,客户端就可以使用目标接口 ICircle 来调用适配器的方法 Draw(),适配器再调用 Adaptee 类的方法 DrawCircle() 来实现绘制圆形的功能。适配器模式将已有的类和接口适配到了客户端所期望的接口,并实现了代码的重用和扩展。适配器模式是一种结构型设计模式,它可以将一个或多个不兼容的接口适配成客户端期望的接口。原创 2023-11-28 09:19:02 · 560 阅读 · 0 评论 -
C# IOC注入示例
【代码】C# IOC注入示例。原创 2023-10-24 13:52:57 · 309 阅读 · 0 评论 -
依赖注入容器 perRequest(Transient)和Singleton区别
在CM框架中,"perRequest"和"Singleton"都是生命周期配置选项,用于指示对象的创建和共享方式。它们之间的区别在于对象实例的生命周期和共享方式。对象的实例在整个应用程序的生命周期内只创建一次,并在整个应用程序范围内共享。对象的实例在每个请求处理期间只创建一次,并在同一个请求内共享。每个请求都有自己的对象实例,不同的请求之间不会共享同一个实例。在请求处理期间不同的组件或对象可以访问同一个实例。具有全局性质,适合在整个应用程序中共享状态和数据。所有的请求和组件都共享同一个对象实例。原创 2023-10-23 21:50:48 · 59 阅读 · 0 评论 -
关于NPOI word 异常解决NPOI.OpenXml4Net.Exceptions.OpenXML4NetRuntimeException:“Fail to save: an erro
还是不行,输出乱码,感觉是FileMode.Open问题。参数名: baseOutputStream”终版正常运行,直接创建了一个新的流。原创 2023-10-19 18:29:23 · 1820 阅读 · 0 评论 -
C# 解决从其他地方迁移项目,引用中大多数包是感叹号的问题
当在 Visual Studio 中复制别人的 C# 项目时,遇到许多包冒感叹号的问题通常是因为缺少相关的 NuGet 包或引用不正确导致的。在属性窗口中,找到 “路径” 或 “路径位置” 属性。属性的名称可能因引用的类型而异,但通常会有一个类似的属性用于设置引用的路径。修改路径属性的值,将其更新为正确的路径。你可以手动输入路径,或者使用浏览按钮浏览到正确的位置来选择路径。在解决方案资源管理器中,找到项目中的引用文件夹。右击要修改路径的引用,选择 “属性”。确保路径值的格式是正确的,并保存更改。原创 2023-10-14 19:37:24 · 1116 阅读 · 0 评论 -
c# List<T>.Aggregate
其中,groups 是当前的累积值,对应空列表 List<Dictionary<string, string>>,而 kvp 是集合中的元素,即字典中的键值对。:初始累积值是一个空的 List<Dictionary<string, string>>,通过创建实例 new List<Dictionary<string, string>>() 进行初始化。:累积计算的逻辑函数,接受两个参数,第一个参数是当前的累积值,第二个参数是集合中的元素,返回一个新的累积值。:初始累积值,也是累积的起始值(默认值)。原创 2023-08-11 16:21:41 · 1011 阅读 · 0 评论 -
c# async异步编程笔记
开始执行主线程异步方法开始主线程继续执行其他操作主线程正在执行其他操作:0主线程正在执行其他操作:1主线程正在执行其他操作:2主线程正在执行其他操作:3异步方法完成主线程正在执行其他操作:4主线程执行完成。原创 2023-08-10 20:47:10 · 384 阅读 · 0 评论 -
c# 全网最稳定 企业级 以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发。
【代码】c# 全网最稳定 实现以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发。原创 2023-08-10 19:24:03 · 438 阅读 · 0 评论 -
c# 创建一个未定义类的临时对象列表
在你的代码示例中,new[] 被用于初始化 tempList 数组,它在这里表示创建一个匿名类型的数组。通过使用 new[],编译器会根据所提供的初始化值来自动推断数组元素的类型。在这个示例中,使用 new[] 初始化了三个不同类型的数组:numbers 是 int 类型的数组,names 是 string 类型的数组,persons 是匿名类型的数组。它是 C# 中的一种语法糖,用于简化数组的初始化过程。通过使用 new[],我们可以根据初始化值的类型自动推断数组元素的类型,而无需显式指定类型。原创 2023-07-29 11:09:29 · 1011 阅读 · 0 评论 -
c# 函数中可选参数太多,想设置最后一个参数,又不想修改前面默认参数
在上面的示例中,MyFunction函数有多个可选参数,并且每个可选参数都有一个默认值。在调用中,我们使用命名参数的语法,显式地指定了我们要设置的参数,而其他参数仍然保持默认值不变。C#中,你可以使用命名参数来指定你想要设置的可选参数,而保留其他参数的默认值不变。通过使用命名参数,你可以根据需要选择要为哪些参数提供值,而无需按照它们在函数签名中的顺序提供参数值。请注意,在使用命名参数时,你需要确保参数的名称与函数签名中定义的名称相匹配。此外,命名参数只能在调用函数时使用,而不能在函数的参数列表中使用。原创 2023-07-27 11:40:51 · 510 阅读 · 0 评论 -
C# 近期知识点汇总
如果集合是EntityFramework或其他ORM查询,调用Count()会导致执行一个可能非常庞大的SQL查询,并可能给应用程序数据库带来较大的开销。调用Any()也会连接数据库,但会生成更高效的SQL语句。如果集合是包含了.Select()等创建对象的LINQ查询,那么将不必要地分配大量内存。调用Any()会更高效,因为它执行的可枚举次数较少。是否原创 2023-07-23 15:13:01 · 320 阅读 · 0 评论 -
C# 全网最详尽Linq 常用功能解析,带使用示例 持续更新... 20230706
在上述示例中,我们定义了一个自定义的排序规则PersonComparer,它实现了IComparer接口,并根据Person对象的Age属性进行排序。在上述示例中,我们使用OrderByDescending方法对整数数组numbers按照元素的降序进行排序,并将排序后的结果存储在sortedNumbers变量中。返回的结果是一个匿名类型的集合,包含具有相匹配的Id和PersonId的元素。LINQ的ThenBy方法用于对已经进行排序的集合进行进一步排序操作,以添加排序的次要条件。原创 2023-07-10 11:25:53 · 497 阅读 · 0 评论 -
c# 判断一个字符串列表是否包含另一个字符串列表中某一个元素
使用 LINQ 查询,我们使用 Any 方法来检查 list1 中是否有任何元素满足某个条件。这个条件使用 list2.Contains(element) 来判断 list2 是否包含 list1 中的元素。在上述示例中,ListContainsElement 方法将返回 True,因为 list1 中包含了 list2 中的元素 “banana”。当需要判断一个字符串列表是否包含另一个字符串列表中的某个元素时,可以使用 LINQ 查询来完成。最后,我们将结果返回给调用者。原创 2023-07-06 14:20:46 · 1735 阅读 · 0 评论 -
C# 二进制格式的byte数组转换成十进制
【代码】C# 二进制格式的byte数组转换成十进制。原创 2023-06-02 14:46:42 · 663 阅读 · 0 评论 -
WPF解决引入的小图标(.ttf文件)显示失败,变成白框问题
ttf文件更新后,如图将生成操作修改为资源,清理解决方案,重新生成即可。原创 2023-05-23 10:40:07 · 482 阅读 · 0 评论