前言 前面两篇文章讲了.NET IoT相关的知识点,以及硬件的GPIO的一些概念,还有点亮两个屏幕的方法,这些让大家对.NET的用途有了新的认识,那我们这回继续讲解.NET IoT的知识点,以及介绍一些好玩的东西,例如让视频通过机器人的屏幕播放起来,还有机器人的身体也能通过我们的代码控制动起来。大家 ...
如题c#获取当前运行应用程序所在目录和退出 前言 现在这浮躁社会,领导都是拍脑袋,大家都是图个短平快,压力进度给着,迫不得已在这种环境下大家都只能以搬砖的态度对待工作,都是用搜索引擎找 然后到处抄代码对吧。找了一片的方法,有AppDomain.CurrentDomain.BaseDirectory, ...
通过前一篇文章,已经了解了AvaloniaUI的环境安装以及项目创建,磨刀不误砍柴工,今天继续进行Avalonia基础知识学习,如有不足之处,还请指正。 ...
预定义类型引用类型 C#支持两种预定义的引用类型:object 和string 名称 .NET类型 说明 object System.Object 根类型,其他类型都是从它派生而来的(包括值类型) string System.String Unicode字符串 1.object类型 许多编程语言和层 ...
.NET9 没有Swagger怎么办? 前言 在.NET9中,在创建Web API项目时,Swagger的使用与.NET8略有不同。.NET9不再内置Swagger,而是生成OpenApi标准的Json文件。如果想在.NET9中使用Swagger,需要手动安装,并配置Swagger。 在.NET9中 ...
预定义类型值类型 数据类型C#关键字(如 int、short 和 string) 从编译器映射到.NET数据类型。例如,在C#中声明一个int类型的数据时声明的实际是.Net System.Int32的一个实例。 这似乎很深奥,但其意义深远;这表示在语法上,可以把所有基本类型看成支持某些方法的类。例 ...
最近有朋友反馈,能否分享一下Avalonia相关的文章,于是就抽空学习了一下,发现Avalonia真的是一款非常不错的UI框架,值得花时间认真学习一下,于是边学习边记录,整理成文,分享给大家,希望可以一起学习,共同进步。 ...
前言 从.NET IoT入门开始这篇文章想必大家应该都看过了,也有很多人都该着手购买树莓派Zero 2W进行上手体验了,那么我们这篇文章就开始真正的实践了,玩硬件肯定是要亲自操作得出成果才会开心,由于牵扯到硬件,所以有的时候软件没问题,但是硬件接线错误或者接触不良都会结果不正常,这个时候就需要我们有 ...
我们经常会使用 List<T> 作为数据存储容器。但在某些特殊场景下,List.Insert 方法可能会引发严重的性能问题,例如 CPU 占用率飙升。 示例程序 以下是一个简单的控制台程序,模拟在 List 的开头不断插入数据: internal class Program { static voi ...
前言 为什么我会想着制作一个智能桌面机器人呢?自问自答一下,看过我之前文章的小伙伴应该都知道我之前有为稚晖君开源的ElectronBot桌面机器人开发过一个桌面上位机软件叫电子脑壳,由于ElectronBot桌面机器人必须连接电脑才能使用,所以限制比较多,网友又对独立版本的桌面机器人呼声比较高,我本 ...
简单、易上手、高效、实用、灵活的 ORM 框架,代码友好,开源、易扩展; nuget: Install-Package ASmile.ORM 目前支持,SQLIte 、SQLServer、MySql、Oracle 数据库; 不做铺垫,直接上示例, 首先,创建数据库对象: DBContext db = ...
跨进程设置父子窗口除了owner方案 C# 跨进程 设置窗口owner - 唐宋元明清2188 - 博客园,还有Win32-SetParent SetParent 函数 (winuser.h) - Win32 apps | Microsoft Learn SetParent可以实现将子窗口嵌入另一个 ...
本文介绍如何将窗口置于最顶层,以及解决在顶层显示时对锁屏登录界面的影响等问题。用于实现类似Launcher、系统工具等应用需要窗口层级比Windows开始菜单以及置顶任务栏还要高的场景 一般情况下的窗口置顶,可以设置WPF窗口属性Topmost=true 也可以使用WIN32-SetWindowPo ...
在WinForm开发中,如果有多个页面进行展示,通常采用菜单栏+容器布局方式(点击菜单栏,打开新的页面,并在容器中显示)。今天以一个简单的小例子,简述如何通过菜单栏和MDI容器实现页面的布局,仅供学习分享使用,如有不足之处,还请指正。 ...
在选择数据结构时,性能取决于具体的操作和使用场景。列表(List) 和 字典(Dictionary) 是两种常见的数据结构,它们有不同的性能特性。以下是对这两种数据结构在不同操作下的性能比较,特别是针对 for 循环下的性能表现。 列表(List) 列表 是一种有序的集合,通常用于存储一组元素,并按 ...
.NET基础 《C#入门经典》第7版 《CLR via C#》第5版 《深入理解C#》 《C#高级编程》第11版 《C#本质论》 《C# 7.0核心技术指南》第7版 《C#入门经典》 《C#编程魔法书》 .NET进阶 《编写高质量代码:改善C#程序的157个建议》 《C#并发编程》 《C#多线程编程 ...
树莓派(Raspberry pi)是一款基于ARM 架构的单板计算机(Single Board Computer),可以运行各种 Linux 操作系统,其官方推荐使用的 Raspberry Pi OS 也是基于Debian开发的。因其低能耗、便携小巧、GPIO等特性,可用于IoT应用开发。.NET可 ...
在一些复杂的项目中,往往会由不同功能的程序组成,且在程序运行期间,各个程序还需要进行互相通信,实现进程间通信的方式有很多种,最常用的就是通过消息中间件,比如RabbitMQ,Kafaka,以及ZeroMQ等,而RabbitMQ和Kafaka这两款中间件往往都需要独立安装步骤才能使用,ZeroMQ却不... ...
本文我们介绍针对Bios如何读取、写入数据,比如最常见的SN读取以及烧录。 在传统设备比如PC的工厂制造环节,需要完成数据初始化如SN、设备型号等,然后工厂测试流水线使用厂测软件验证。 还有一些数据需要存储在BIOS的需求,比如一些软件离线激活码,放在磁盘里肯定不合适,换个硬盘激活码就没了,那这种情 ...
我们都知道结构体struct,在大量创建、引用的场景下相比类class能提升很大性能。本文介绍下如何正确使用struct struct定义 1 struct Point 2 { 3 public float X; 4 public float Y; 5 } 6 7 class Rect 8 { 9 ...