在wpf开发中,你会经常遇到一些需要验证填写内容不能为空,或者是其他的一些规则,比如正则表达式等,以下就是一个示例,同时提供了很多种方式。 1.方式1.使用第三方库:ValueConverters 第一步:在项目中nuget引用ValueConverters 第二步:新建View:ValueConv ...
在实际的WPF开发过程中,你可能需要自定义ComBox的样式,重写的样式可能不出效果,背景色无法正常显示,或者是显示的内容出现白色遮罩,如以下的效果: 1.ComBox样式如下: <Style TargetType="TextBlock" x:Key="BaseTextBlockStyle"> <S ...
一、前言 前面的课程我们实现了两种形状:矩形、圆形,在第4章的时候就会发现,仅增加了个新形状,代码量及判断逻辑就翻倍不止,异常繁琐,可维护性很差,更没有扩展性可言。我们本节课就来解决这一点,解决的方法也很简单经典:抽象! 相信看完的你,一定会有所收获! 本文地址:https://www.cnblog ...
假设我们开发了一个C#脚本编辑器,利用Roslyn去执行用户所编写的脚本。这时候,如果用户想要引用一个nuget包,应该如何实现呢? 我们想要引用nuget包的话,只要能得到nuget包及其依赖包的所有程序集和资源文件就可以了。如何引用程序集,可以看这一篇:使用Roslyn脚本化C#时如何调用不包含 ...
1 IsNullOrEmpty()和IsNullOrWhiteSpace()的区别? IsNullOrEmpty是一个静态方法,它用于检查一个字符串是否为空或者为null。 public static bool IsNullOrEmpty(string value); IsNullOrWhiteSp ...
一:背景 1. 讲故事 这篇文章起源于和一家 .NET公司 开线上会议时,提出的一个场景问题,程序出现了非托管内存暴涨,这些非托管内存关联的对象都囤积在 终结器队列 中,很显然这是代码中没用 using 及时释放引发的,而这块代码又是第三方组件,你想加也加不了,所以提出了一个设想:能不能设法干预 终 ...
从C#9开始,可以使用record关键字来定义一个具有不可变属性的引用类型,编译器会为该类型生成大量的模板代码。C#10以后,record struct用来定义值类型,record class或record用来定义引用类型。 record(C# reference)这篇官方的文档中,介绍了recor ...
一、前言 前面的课程我们实现了矩形、圆形的拖动,以及不同形状间的连线,在实现的过程中,很多读者都发现并提出来了存在显示质量差有锯齿、拖动不流畅还闪烁等问题,作为承上启下的一节课程,我们本节就来看一上如何解决这些问题。 相信看完的你,一定会有所收获! 本文地址:https://www.cnblogs. ...
芯片测试中 检查 LDO 电压(Low Dropout Regulator Voltage) 是一个非常关键的环节,用于验证芯片内部或外部 LDO 是否正常输出稳定的电压,为核心模块提供可靠电源。 1.什么是 LDO 电压测试 LDO(低压差线性稳压器) 通常存在于芯片内部,用于将外部较高电压(如 ...
一:背景 1. 讲故事 本篇是系列的最后一篇,我们从跨平台部署和自定义诊断的角度跟大家聊一聊 dottrace,希望对大家有所启发。 二:跨平台和自定义诊断 1. 如何跨平台诊断分析 如果 dottrace 只能在 windows 平台上跑,那确实不值得写一个系列,目前它可以横跨三大平台(Windo ...
泛型(Generics)是C#中的一种强大的强类型扩展机制,在申明时用“占位符”类型参数“T”定义一个“模板类型”,比较类似于C++中的模板。泛型在使用时指定具体的T类型,从而方便的封装、复用代码,提高类型的安全性,减少类型转换和装箱。 ...
一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 ContinueWith 没有本质区别,这一篇我们就来聊一聊。 二: ...
一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径采用底层的ETW机制,即开启 windows 底层日志,所以 dottrace 可以做,官方血统的 ...
一:背景 1. 讲故事 在我分析的众多dump中,有一些CPU爆高是因为高频的抛 Exception 导致,比如下面这张图,有 19 个线程都在抛 xxxResultException 异常。 从卦中虽知大量异常的痕迹,但从严谨的角度来说,最好再卜一卦,就是用 perfview 或者 dottrac ...
芯片测试中“由 MCU 下载程序,测试芯片内部接口、FLASH 等情况并反馈结果”通常是在生产测试(ATE)或板级测试(ATE-BIT/BIST)阶段使用的一种自测试(BIST)机制,主要用于验证芯片功能是否合格,特别适用于 射频芯片、SoC、MCU 芯片 等具有 Flash 或外设的器件。 1.整 ...
一:背景 1. 讲故事 写这一篇是因为昨天看 dottrace 官方文档时,在评论区看到了一条不友好的评论,截图如下: 虽然语气上带有些许愤怒,但说实话人家也不是无中生有,作为 dottrace 的忠实粉丝我还是能够理解他的心情的,所以这篇我用最新的 2025.01 版 dottrace 来演示一下 ...
一、前言 上一节我们实现了在矩形与矩形之间添加连线,光是矩形太单调了,某些问题也暴露不出来,我们本节就来看一下,如何添加一个圆形,且支持圆形与圆形、圆形与矩形、矩形与矩形间的连线。在这个过程中我们会发现一些问题,这些问题我们后续课程会进行处理,大家也请带着自己的思考和理解去看。 相信看完的你,一定会 ...
在wpf开发中,你有没有需要用到这样的场景,比如:在父窗口显示表单的输入的内容,然后再进行一些处理逻辑等,表单可以很复杂,也可以很简单,下面我就以示例代码来做一个demo展示。 1.父窗口界面展示如下: <Window x:Class="WPFDemoMVVM.View.UserInputView" ...
电源管脚接触测试(Power Pin Contact Test)是芯片量产/测试流程中用于确认芯片电源引脚(如 VDD、VSS、AVDD、DVDD 等)是否与测试治具或探针台良好接触的关键测试环节。 1.为什么要做电源管脚接触测试? 电源管脚如果接触不良,可能导致: 芯片无法正常上电,所有后续测试失 ...
芯片中的 IO管脚接触测试(IO Pin Contact Test),是芯片测试流程(ATE:Automatic Test Equipment 流程)中非常关键的早期测试环节,主要用于判断芯片引脚是否正确接触探针/测试座,以避免由于接触不良导致后续测试误判。 1.IO管脚接触测试的目的 确认每个 I ...