随笔分类 - C#和.NET
摘要:
### 摘要 很多C/S开发领域的同学或多或少都可能会遇到需要制作安装包的场景,打包的工具也是五花八门,例如有NSIS、InstallShield、Wix Toolset、ClickOnce等等,这里以Inno Setup为例简单演示下如何构建安装包,以及在Visual Studio中编译程序时自动
阅读全文

摘要:
摘要 使用C#获取串口最简单的方式就是通过SerialPort对象了,但有时并不能满足需求,比如有些串口是通过驱动模拟的,那这种可能就获取不到了。 示例代码 这里简单演示几种常用的本机串口获取方式: 通过SerialPort对象获取 SerialPort.GetPortNames().ToList(
阅读全文

摘要:摘要 C#的分部关键字(partial)能够拆分一个类、一个结构、一个接口或一个方法为两个或更多个的文件,分部的每个文件都可以包含自己的类型和方法,程序编译时会将同类的分部内容合并为一个。 关于分布类 partial这个关键词可能大家都见过,但未必经常去使用,比如XAML的后台代码就是用到了分布类,
阅读全文
摘要:
摘要 在实际项目开发过程中,为了使其界面风格统一,恰好第三方UI库不满足又或是系统自带的又太过于简陋,那就撸起袖子肝一个自定义的出来吧! 示例代码 Tips:因都是基础代码,没什么太大难点,这里只是抛砖引玉给大家提供一个思路参考,文末有完整源代码! 1、创建一个MessageBox窗体 这里按照常规
阅读全文

摘要:
摘要 由于最近发现此前一直使用的图床SM.MS图床国内由于某些原因已经不能访问了,并更换了一个给国内使用的域名,导致此前上传的图片全部不能访问。为了图片稳定性,”斥巨资“购买了阿里云OSS作为图床,想着把图片转移到阿里云OSS以此来恢复博客文章中引用的图片,但事与愿违,SM.MS并未提供导出备份的功
阅读全文

摘要:简单总结了5种字节数组的复制方法 for循环实现复制 较为原始的遍历写法,不太推荐 byte[] data = new byte[]{0,1,2,3,4,5,6,7,8,9}; byte[] data1 = new byte[data.length]; for(int i=0;i<data1.len
阅读全文
摘要:摘要 在有些特殊项目中,软件可能是无人值守的,如果程序莫名其妙挂了或者进程被干掉了等等,这时开发一个看门狗程序是非常有必要的,它就像一只打不死的小强,只要程序非正常退出,它就能立即再次将被看护的程序启动起来。 代码实现 Tips:文末有完整源代码,就不一步一步写了 1、创建一个Dog类,主要用于间隔
阅读全文
摘要:摘要 在一些项目中,可能会用到串口(COM)通信,也可能会使用TCP-Server,TCP-Client,UDP等等,这种实现起来都大差不差,所以我封装了一个无任何依赖小而美的通信框架,通用性强,安全稳定,动态库仅16KB。目前支持UPD/COM/TCP-Server/TCP-Client,UDP支
阅读全文
摘要:编写文档模板页面 1、新建Page页面,将顶部节点更改为FlowDocument,后台代码不需要,可直接删掉 2、实现一个表格页面 直接上代码,自己看,其中需要注意的是,如果非静态页面(即内容是需要绑定的),只需要给它一个DataContext上下文即可,后文会有讲到 <FlowDocument x
阅读全文
摘要:完整代码在笔记结尾 获取枚举描述 public static string GetEnumDescription(this Enum en) { var type = en.GetType(); //获取类型 var memberInfos = type.GetMember(en.ToString(
阅读全文
摘要:创建项目(dotnet new) dotnet new根据指定的模板,创建新的项目、配置文件或解决方案。 PS E:\> dotnet new wpf -lang "C#" -n "DotNetCli" 已成功创建模板“WPF 应用程序”。 正在处理创建后操作... 在 E:\DotNetCli\D
阅读全文
摘要:扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编
阅读全文
摘要:本文记录一次 拼接图片的 需求,大致需求是这样,使用一款线阵相机拍摄图片,而每次拍摄尺寸是有限的,比如我这里需要拍摄一整个汽车的车底。所以再给相机设置好行平,图片尺寸等各种参数后,最终相机每拍摄一张,我就可以取到一张,同步进行图片的拼接处理,直到停止拍摄,最终生成一张图片。具体拼接的代码在本文最后。
阅读全文
摘要:三层矩形框:表示一个类(对象),第一行为类名,第二行为特性(字段、方法等),第三行为操作(方法、行为) Tips:如果类名为斜体则是抽象类 “+”:public访问级别 “-”:privte访问级别 “#”:protected访问级别 “<>”:表示接口,第一行为接口名称、第二行为接口方法 空心圆+
阅读全文
摘要:Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core。 安装 为了能够在控制台中使用命令行来操作EF,需要先安装Microsoft.EntityFrameworkCore.Tools。 Install-Package M
阅读全文
摘要:通常情况下,在使用文本框的时候,一般会在文本框上放一段水印文字,今天用WPF来实现一下 创建一个用户控件 一般像这种常用的,最好是自己写成用户控件,防止复制粘贴大量冗余代码 XAML: <TextBox x:Class="CallCenter.UserControl.TipTextbox" xmln
阅读全文
摘要:重写控件模板 <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="CheckBox"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="au
阅读全文
摘要:NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台。NLog使写入多个目标变得容易 。(数据库,文件,控制台)并即时更改日志记录配置。 NLog支持结构化 日志记录和传统日志记录。 NLog的重点是:高性能,易于使用,易于扩展和灵活配置。 #安装Nlog 可以选择包管理器
阅读全文
摘要:protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } }
阅读全文
摘要:启用外部程序有很多方法,我自己要启动的程序因为内部调用了第三方的驱动,通过其它的调用方法均无法完美打开,始终有功能缺陷
阅读全文