自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mock 单元测试详细

在单元测试中,Mock 是一种模拟依赖对象行为的技术,主要用于隔离待测试对象(SUT: System Under Test)与其依赖项(通常是接口、类或外部系统)。这样,我们可以专注于测试目标代码的逻辑,而不需要考虑其依赖项的实现细节或副作用。在单元测试中,为了方便 Mock,我们通常为目标对象的依赖项定义接口。csharp复制代码Mock 是单元测试中模拟依赖对象的核心工具,可以提升测试效率并简化依赖管理。在 C# 中,Moq 是最常用的 Mock 框架,提供了简单直观的 API。

2025-01-15 13:44:13 1660

原创 avalonia 显示链接图片有那些方法?

提供了简单且高效的方式加载网络图片,适合希望减少开发工作量的场景。手动加载:在 ViewModel 中异步加载图片,适合需要自定义加载逻辑或不希望引入额外依赖的场景。辅助类加载:通过创建类,统一管理图片加载逻辑,增强代码的可维护性。根据项目需求选择最适合的方法,实现网络图片的加载和显示。

2025-04-07 09:42:06 363

原创 1字节(8位)表示8个状态位

通过位掩码操作,可以单独设置、读取或修改某一位的状态。,适用于嵌入式系统、网络协议、硬件控制等场景。通过结构体和位字段特性(需。通过以上方法,可以用。

2025-03-27 09:18:16 580

原创 c#处理算数溢出的情况

在C#中,算术运算的溢出处理可以通过 checked和 unchecked关键字控制,默认行为是,但可以通过配置或代码块显式调整。

2025-03-24 16:36:01 488

原创 .net 项目引用与 .NET Framework 项目引用之间的区别和相同

相同点:引用的目的、管理器、类型和编译依赖在 .NET 和 .NET Framework 中是相同的。不同点:项目类型、目标框架、引用方式、传递引用、项目文件格式和依赖解析在 .NET 和 .NET Framework 中有所不同。了解这些区别和相同点有助于你在不同的 .NET 版本之间进行项目管理和开发。

2025-01-22 20:59:12 1084

原创 如何在日常工作中使用AI

**使用AI生成文章**:借助像WPS灵犀这样的AI工具,输入你的主题和关键点,让AI帮助你生成初稿。-**DeepSeek**:致力于深度学习研究的公司开发的产品,适用于需要高度定制化解决方案的企业用户。-**训练AI查找自己需要的内容**:通过提问的方式与AI互动,逐步调整查询参数以获得更精确的结果。-**确定主题以及需要的分论点**:首先明确你的PPT主题和主要分论点,这有助于后续内容的组织。-**对AI的内容做基本的判断**:评估AI提供的信息准确性,并结合自己的专业知识进行筛选。

2025-01-18 21:55:33 704

原创 C# 特性(Attributes)详解

特性(Attributes)是 C# 提供的一种强大的元数据机制,用于在代码中添加描述性信息。它可以附加到程序的各种部分(类、方法、属性、字段等),供运行时或编译时使用。内置特性继承自类。csharp复制代码将特性应用到类或方法。csharp复制代码特性是元数据:用于为代码添加描述性信息或控制行为。易扩展性:可以通过自定义特性满足复杂需求。结合反射:在运行时可以动态读取特性信息,适合灵活场景。应用广泛:从简单的标记到复杂的框架行为控制,特性都能胜任。

2025-01-15 15:00:59 752

原创 WPF 数据绑定中的通知机制及其性能考虑

与不同,使用 WPF 的属性系统来自动处理属性变更的通知。通常,用于控件和自定义控件的属性。csharp复制代码在上述代码中,IsClicked是一个,它支持数据绑定和自动通知变化。当IsClicked的值改变时,所有绑定到该属性的控件会自动更新,而无需显式地触发事件。WPF 的数据绑定机制强大且灵活,通过和等接口实现了数据和 UI 之间的自动同步。虽然 WPF 提供了强大的绑定功能,但开发者也需要关注性能问题,特别是在绑定频繁变化的属性、大型集合或复杂 UI 组件时。

2025-01-01 13:19:17 1106

原创 WPF-绑定

数据绑定是 WPF 中一种强大的机制,用于在数据源和 UI 元素之间建立连接,使得数据的变化能够自动反映在 UI 上,反之亦然。数据绑定简化了 UI 和数据层之间的交互,提高了代码的可维护性和可读性。单向绑定:数据从数据源流向目标。双向绑定:数据在数据源和目标之间双向流动。单向到源绑定:数据从目标流向数据源。一次绑定:数据从数据源流向目标一次。默认绑定:根据目标属性的决定绑定模式。

2024-12-30 13:43:59 822

原创 为什么建议使用 ReadOnlySpan<T>?

一种高效、安全的方式来操作数据片段,在性能和内存管理方面具有显著优势。它适用于高性能、内存敏感的应用场景,但需注意其生命周期的限制,避免不当使用导致错误。

2024-12-27 18:09:56 632

原创 程序员转职外卖员:从代码到餐点的转变

希望每位读者都能在职业道路上找到最适合自己的位置,实现个人价值的最大化。

2024-12-27 17:46:44 832

翻译 Avalonia UI 和 MAUI - 各有所长

Avalonia UI 和 MAUI 都是跨平台开发的出色选择,各自提供了独特的优点,具体取决于项目的实际需求。.NET 生态系统的强大之处在于它为开发人员提供了多种选择,确保他们可以选择最适合其特定项目的最佳方法。.NET 的美妙之处在于,一个架构良好的应用程序可以重用大量代码,无论使用哪种 UI 框架。

2024-12-20 09:44:16 706

原创 WPF MVVM模式介绍

描述:表示应用程序的数据和业务逻辑。职责:负责数据的存储和操作,通常不包含任何 UI 逻辑。定义一个事件类。csharpMVVM 模式:将应用程序分为 Model、View 和 ViewModel,提高代码的可测试性和可维护性。命令绑定:使用ICommand接口将用户的操作与 ViewModel 中的方法关联起来。事件聚合器和消息传递机制:使用 Prism 的或 MVVM Light 的Messenger在松耦合的组件之间通信。

2024-12-10 23:25:53 432

原创 VS Rider创建Avalonia项目

介绍如何创建avalonia项目

2024-11-09 14:54:52 749

原创 yield 关键字在 C# 中用于实现迭代器方法

在这个示例中,GetNumbers 方法是一个迭代器方法,它使用 yield return 逐个返回从 1 到 5 的整数。在这个示例中,GetPeople 方法是一个迭代器方法,它使用 yield return 逐个返回 Person 对象。在这个示例中,当 i 等于 5 时,yield break 语句会提前终止迭代,因此只会输出 1 到 4。状态保存:迭代器方法在每次 yield return 后会保存当前的状态,以便下次继续执行。延迟执行:迭代器方法的执行是延迟的,只有在需要时才会生成下一个值。

2024-11-07 17:19:59 327

原创 Avalonia 相关知识内容

Avalonia 是一个开源的跨平台 .NET UI 框架,支持 XAML 标记语言。特点:跨平台(Windows、macOS、Linux)、高性能、MVVM 支持、丰富的控件库。

2024-11-05 22:23:44 534

原创 winform启动qq,嵌入窗体并跟随窗体变化

【代码】winform启动qq,嵌入窗体并跟随窗体变化。

2024-11-05 14:50:27 164

原创 WPF 滚动条实现瀑布流效果

不做分页,用滚动条事件实现瀑布流效果。

2024-09-11 20:10:14 263

原创 C# 单元测试 XUunit

xUnit作为测试框架

2024-06-22 21:51:06 198

原创 事件总线 Event Bus

实现一个功能强大的事件总线(EventBus)在C#中涉及设计一个灵活、高效且易于使用的事件发布与订阅系统。以下是一个简化的示例,展示了如何构建一个基本的事件总线,同时考虑到了类型安全、线程安全以及事件处理的灵活性。

2024-06-16 16:40:37 222 1

原创 一个WPF动态壁纸软件

一个WPF动态壁纸软件

2023-12-29 15:57:21 586

原创 MAUI-导航 TabbedPage的使用

也可以用TabbedPage选项卡的方式进行导航。选项卡的标题由 Page.Title 子页的 属性定义,选项卡图标由 Page.IconImageSource 子页的 属性定义。UnselectedTabColor,类型 Color为 ,表示选项卡在未选中时的颜色。SelectedTabColor,类型 Color为 ,指示选中选项卡时选项卡的颜色。BarBackgroundColor,类型 Color为 ,定义选项卡栏的背景色。BarTextColor,类型 Color为 ,表示选项卡栏上文本的颜色。

2023-11-02 12:35:10 1882

原创 一篇文章学习mysql

mysql基础知识学习

2023-11-02 12:06:26 169

原创 替代if esle的高级玩法

if else 是入门最常遇到的一种结构,这种结构简单易懂,深受初学者喜爱。但是 If-Else通常是一个糟糕的选择。它的可读性差,如果用的太多,会导致结构重构困难。今天我就介绍替代 If-Else的方法。

2022-12-15 22:35:28 472

原创 工作日记 c# 关于取余、取整

c# 关于取整工作中,类型的转换是很常见的情况。有时候我们会忽略了一些情况,比如取整的时候,double和int混合一起做取整操作。取整的时候,如果是 int/int ,属于int类型运算,最后的结果是一个整数,但是如果运算结果是double类型,会有一个int转double的过程。如7/10,数学运算的结果是:0.7(double),但是因为这是整形运算,结果会自动转换成整形,然后再赋值,也就是存在 一个 double转int类型的一个过程(0.7的转换结果是0)。所以得到的结果一直都是0。不能把

2021-04-22 12:56:20 912

原创 c# 播放音乐

using System.Media;SoundPlayer player = new SoundPlayer(@"./song/err2.wav");player.Play();

2020-12-12 18:12:23 232

原创 datatable转model的工具类

这里写自定义目录标题 public class DBTableHelper<T> { /// <summary> /// datatable 转model /// </summary> /// <param name="table"></param> /// <returns></returns> public stat

2020-12-11 21:45:18 230

原创 sql里面的asc和desc排序原理

最近遇到一个数据库的问题,sql语句是对版本进行降序排列。如下例子:用下载sql去查询,没有排序的效果。SELECT * FROM data2 WHERE pn='' AND wsid='' AND order_ork='' ORDER BY 'tpver' desc 如下两个版本V3.7.2-R1.0Z1.3.1V3.11-R9.0Z1.4因为desc的排序方式是hashcode,...

2019-11-19 17:50:29 1993

原创 定时器ping ,是内存泄漏还是并发过多出现的资源不足?

我做了一个小工具,每隔三十秒监测在线ip,用ping扫描局域网内的ip,得到在线的ip。但是出现一个问题大概运行十个小时后出现资源不足的问题,内存在时间长之后,被占用太多。为了验证是我的ping的问题,我把定时器改为500ms监测一次。结果内存成指数增长。我以为超时的那些都会被gc回收。但是好像没有。我百度了一下,没有找到解决办法。public void StartScanIP() ...

2019-08-06 14:52:05 835 2

原创 定时器连续ping,打印log

ping检测网络状态

2019-05-29 00:38:08 726

原创 foreach遍历时不能改变集合的值

最近遇到一个比较坑爹的事情,因为list这些集合比较常用foreach进行循环,比较方便。所以项目里很多foreach,但是今天遇到一个异常,如下图:很困惑,于是看了foreach的底层源码。才发现原来foreach的底层是迭代器iterator实现的,通过下标判断是否还有下一个元素,但是对于下标边界,foreach只会算一次,这一点和for不同。 这就是为什么我们改变list的值后,出现异常...

2019-05-18 10:59:25 2428

转载 转 关于DataGridView基本操作,记录在自己的博客,非原创

找了很久怎么处理datagridview的博文,这个还是比较清楚的,所以在自己的博客只是当做笔记本记录

2019-04-30 14:44:53 131

空空如也

空空如也

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

TA关注的人

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