随笔分类 -  C#

摘要:在音乐文件管理中,正确的元数据(metadata)对于文件组织和音乐播放器的显示至关重要。本文将介绍如何使用C#和TagLib库来批量处理FLAC文件的元数据,这对于需要管理大量音乐文件的场景特别有用。 背景介绍 FLAC(Free Lossless Audio Codec)是一种无损音频编码格式, 阅读全文
posted @ 2025-01-22 17:32 非法关键字 阅读(15) 评论(0) 推荐(0) 编辑
摘要:协变(Covariance) 和 逆变(Contravariance) 是面向对象编程中关于类型系统的一种概念,主要用于处理泛型类型、接口或委托的继承和类型转换问题。它们决定了在继承结构中,泛型参数如何与类型或接口的继承关系保持一致或相反。 1. 协变(Covariance) 协变指的是,当你有一个 阅读全文
posted @ 2024-09-28 13:45 非法关键字 阅读(268) 评论(0) 推荐(0) 编辑
摘要:在 WPF 应用程序中,我们经常需要在 MVVM 模式下处理用户交互,同时传递both事件参数和当前的数据上下文。Microsoft.Xaml.Behaviors 提供了一种优雅的方式来实现这一目标。本笔记将详细介绍如何使用 EventTrigger、InvokeCommandAction 以及自定 阅读全文
posted @ 2024-06-25 10:42 非法关键字 阅读(2355) 评论(1) 推荐(3) 编辑
摘要:本文档解析了一段实现自定义ToggleButton动画与样式的代码,以及通过远程信号控制ToggleButton的示例。这段代码展示了如何使用WPF中的XAML和C#结合动画、样式和事件触发器来实现交互式控件,ToggleButton主要用来关联远程通信的状态,使用RemoteToggleButto 阅读全文
posted @ 2024-06-03 09:35 非法关键字 阅读(80) 评论(0) 推荐(0) 编辑
摘要:在WPF(Windows Presentation Foundation)中,控件的外观和行为是通过控件模板(Control Template)来定义的。TabControl和TabItem控件也不例外,它们的默认控件模板定义了这些控件的结构和视觉状态。在实际应用中,开发者可能会发现直接设置TabI 阅读全文
posted @ 2024-05-30 13:05 非法关键字 阅读(485) 评论(0) 推荐(0) 编辑
摘要:1. IEnumerable 与 List 的比较 在 .NET 中,IEnumerable 和 List 是两种常用的集合类型,它们有各自的适用场景: IEnumerable<T>: 优点:惰性求值,仅在迭代时计算,适用于大数据集或流式数据处理。 缺点:不能进行索引访问,没有直接的添加或移除元素的 阅读全文
posted @ 2024-05-29 14:21 非法关键字 阅读(20) 评论(0) 推荐(0) 编辑
摘要:在多线程编程中,线程同步是确保数据一致性和避免竞争条件的重要手段。本文将深入探讨 lock(object) 和 SemaphoreSlim 这两种常用的同步机制,详细分析它们的区别、适用场景以及如何在实际开发中选择合适的同步工具。 一、lock(object)(或 Monitor) 1. 单线程访问 阅读全文
posted @ 2024-05-29 10:47 非法关键字 阅读(863) 评论(0) 推荐(0) 编辑
摘要:在现代的WPF应用开发中,Prism框架提供了强大的模块化、依赖注入和MVVM支持,而Microsoft.Extensions.DependencyInjection提供了简洁而功能强大的依赖注入机制。另外很重要的一点是Microsoft.Extensions.*或者第三方的Nuget基本会提供Mi 阅读全文
posted @ 2024-05-29 09:38 非法关键字 阅读(599) 评论(4) 推荐(1) 编辑
摘要:在现代应用程序开发中,异步数据加载和管理是一个普遍的需求。本文介绍了一个自定义的异步数据加载工具——AsyncLoadHelper。通过详细的设计和实现介绍,以及结合实际应用示例,展示了AsyncLoadHelper在简化异步操作、提高代码可读性和维护性方面的优势。 在开发过程中,异步数据加载常常涉 阅读全文
posted @ 2024-05-28 14:29 非法关键字 阅读(51) 评论(0) 推荐(0) 编辑
摘要:在 WPF 中,Adorner 是一种特殊的装饰层,能够在 UI 元素之上绘制视觉效果。常用于提供视觉反馈或装饰功能,例如焦点指示、拖放效果等。 自定义 Adorne 类 要创建自定义 Adorner,需要继承 Adorner 类并重写 OnRender 方法。在 OnRender 方法中,您可以使 阅读全文
posted @ 2024-05-28 10:43 非法关键字 阅读(52) 评论(0) 推荐(0) 编辑
摘要:在WPF(Windows Presentation Foundation)中,PreviewMouseLeftButtonDown 和 MouseLeftButtonDown 是两个常用的鼠标事件,它们在事件路由策略和处理时机上有所不同。了解这两个事件的区别以及如何在实际应用中使用它们,可以帮助开发 阅读全文
posted @ 2024-05-28 10:31 非法关键字 阅读(445) 评论(0) 推荐(0) 编辑
摘要:在进行Binding的时候,如果能够明确到数据源属性的Path(Name),就可用Source、ElementName进行指定,但是有时候需要绑定的数据源可能没有明确的Path(Name),此时就需要利用Binding对象的RelativeSource属性来进行绑定源属性的指定,说白了,就是指定当前 阅读全文
posted @ 2022-11-01 16:22 非法关键字 阅读(1236) 评论(0) 推荐(3) 编辑
摘要:WPF类继承关系图 Object类:在.Net中所有类型的根类型 ​ DispatcherObject类:WPF中的大多数对象是从 DispatcherObject 派生的,这提供了用于处理并发和线程的基本构造。WPF 基于调度程序实现的消息系统。 ​ DependencyObject类:表示一个参 阅读全文
posted @ 2022-10-31 17:33 非法关键字 阅读(276) 评论(0) 推荐(1) 编辑
摘要:使用Lazy<>优雅的解决构造函数中的异步需求 前世今生 从netframework 4.0开始,C#开始支持延迟初始化,通过Lazy关键字,我们可以声明某个对象为仅仅当第一次使用的时候,再初始化,如果一直没有调用,那就不初始化,省去了一部分不必要的开销,提升了效率 线程安全性 默认情况下,该类的所 阅读全文
posted @ 2022-06-28 16:42 非法关键字 阅读(436) 评论(0) 推荐(1) 编辑
摘要:Expression与ExpressionTree LINQ 表达式(Expression) 可以将lambda表达式分配给Func或Action类型委托,以处理内存中的集合。.NET编译器在编译时将分配给Func或Action类型委托的lambda表达式转换为可执行代码。 LINQ引入了一种名为E 阅读全文
posted @ 2022-06-06 09:39 非法关键字 阅读(132) 评论(0) 推荐(0) 编辑
摘要:LINQ运算符 LINQ 过滤运算符 Where LINQ中的过滤运算符根据某些给定的标准过滤序列(集合)。 下表列出了LINQ中所有可用的过滤运算符。 筛选运算符 描述 Where 根据谓词函数从集合中返回值。 OfType 根据指定类型返回集合中的值。 然而,它取决于它们是否能够向指定类型转换。 阅读全文
posted @ 2022-06-02 14:31 非法关键字 阅读(109) 评论(0) 推荐(0) 编辑
摘要:要求Quartz版本高于3.2 安装Install-Package Quartz.Extensions.Hosting Quartz.Extensions.Hosting包中包含Quartz.Extensions.DependencyInjection, 详情请查询Quartz.Extensions 阅读全文
posted @ 2022-02-28 17:32 非法关键字 阅读(433) 评论(0) 推荐(0) 编辑
摘要:AspNetCore3.1.x以Windows Service运行 安装相应的扩展包 Nuget install Microsoft.Extensions.Hosting.WindowsServices 对Pramgram.cs的修改 public class Program { public st 阅读全文
posted @ 2021-05-20 10:05 非法关键字 阅读(162) 评论(0) 推荐(0) 编辑
摘要:在使用Flurl作为HttpClient向Server请求时,由于网络或者其它一些原因导致请求会有失败的情况,比如HttpStatusCode.NotFound、HttpStatusCode.ServiceUnavailable、HttpStatusCode.RequestTimeout等;网络上有 阅读全文
posted @ 2021-03-14 17:08 非法关键字 阅读(673) 评论(1) 推荐(0) 编辑
摘要:C#获取WIFI的连接状态 本文是在知道WIFI网络设备名称的情况下,获取该设备的连接状态,同样也是可以判断是否已连接广域网 思路 起初是想着有没有那样一个直接访问设备信息,通过这个返回的信息来得到我想要的状态,查了一个资料在Linux上有个libiw,这个包能扫描到的ssid的相关信息,并不是我想 阅读全文
posted @ 2020-12-23 11:09 非法关键字 阅读(1554) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示