C#设计模式之建造者模式生成器模式示例详解

目录前言建造者模式结构实例使用建造者模式总结前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供...

2023-01-01

C#实现封面图片生成器的示例代码

目录实现功能开发环境实现代码实现效果这个东西我已经用了有段时间了,从开始写文章就在用这个,主要原因还是因为我比较懒。懒得去寻找图片,同时又怕万一惹来版权争议。。。跟我...

2023-01-01

C#利用Spire.Pdf包实现为PDF添加数字签名

目录背景简介依赖源码背景对PDF文档进行数字签名的需求对PDF文档添加水印的需求网上资料版本不一或不全本文章提到的Spire.Pdf均是使用的Spire.Pdf for .NET,除此之前还有其...

2023-01-01

在C#程序中注入恶意DLL的方法详解

目录一、背景二、实现原理1. 基本思路2. 案例演示3. 自定义注入三:总结一、背景前段时间在训练营上课的时候就有朋友提到一个问题,为什么 Windbg 附加到 C# 程序后,程序就处于...

2023-01-01

C# Winform实现自定义漂亮的通知效果

目录前言优化调整调用并显示自定义通知主要实现过程代码实现前言本文主要介绍其具体的实现思路(视频仅有代码输入,并无过程介绍等),同时,在原本实现的基础上,进行了多处修改和优...

2023-01-01

C#中匿名方法与委托的关系介绍

当对2个数实现加减乘除,其中的一个解决方案是通过委托来实现。如下: class Program { private delegate int CaculateDel(int num1, int num2); static v...

2023-01-01

C#中使用Microsoft Unity记录日志

需要记录日志的地方包括:进入方法的时候,传参的时候,统计执行时间,方法返回参数的时候,退出语句块的时候,出现异常的时候,等等。先来体验不使用Micirosoft Unity进行日志记录。...

2023-01-01

C#中的yield关键字详解

在"C#中,什么时候用yield return"中,我们了解到:使用yield return返回集合,不是一次性加载到内存中,而是客户端每调用一次就返回一个集合元素,是一种"按需供给"。本篇来重温yield...

2023-01-01

Oracle中for循环的使用方法

Oracle for in loop 循环的一些实例,以作学习和加强使用熟练度及场景应用.一些技巧for 语句后面的 loop end loop 可以类比成 c#/java 等编程语言 for 语句后面的语句块符号...

2023-01-01

C#中GDI+绘制圆弧及圆角矩形等比缩放的绘制

目录理解圆弧绘制从圆弧到绘制圆角长方体如何实现等比缩放绘制圆角矩形按固定比例计算缩放矩形的尝试(不推荐)通过Inflate()方法缩放矩形理解圆弧绘制GDI+中对于圆弧的绘制,是...

2023-01-01

C# Winform实现圆角无锯齿按钮

前言:发现用Winform做一个圆角按钮遇到麻烦,主要是锯齿问题,后面想了想办法解决问题了。主要方法是按钮的区域通过Region指定,但按钮需要自己画,否则怎么搞都出现锯齿,网上有朋友...

2023-01-01

基于C#实现一个简单的FTP操作工具

目录实现功能开发环境实现代码实现效果实现功能实现使用FTP上传、下载、重命名、刷新、删除功能开发环境开发工具: Visual Studio 2013.NET Framework版本:4.5实现代码 /*FTP...

2023-01-01

Winform 控件优化LayeredWindow无锯齿圆角窗体

目录前言关于Layered Windows(分层窗体)关于同样的实现使用Layered Windows与使用透明窗体的区别Control.DrawToBitmap()将控件绘制到Bitmap最终效果几个小问题StartPosition...

2023-01-01

C#/VB.NET实现创建PDF/UA文件的示例代码

目录1.什么是PDF/UA文件2.文件格式要求3.如何创建PDF/UA文件C#VB.NET1.什么是PDF/UA文件PDF/UA,即Universally Accessible PDF,该格式的PDF文件是于2012年8月以ISO标准14289-1...

2023-01-01

C#位运算符的基本用法介绍

位运算符包括:| 按位或 OR,& 按位与 AND,^ 按位异或 XOR,~ 取反 NOT,<< 左移 Left Shift,>> 右移 Right Shift,等等。本篇体验位运算符在C#中的应用。进制转换因为位运算是在二进制...

2023-01-01

C#使用Lazy<T>实现对客户订单的延迟加载

"延迟加载"是指在需要的时候再加载数据。比如获得一个Customer信息,并不会把该Customer的Orders信息一下加载出来,当需要显示Orders的时候再加载。简单来说,就是按需加载。使用...

2023-01-01

C#实现观察者模式(Observer Pattern)的两种方式

在观察者模式中有2个要素:一个是被观察对象,另一个是观察者。但被观察对象的状态发生改变会通知观察者。举例:把订阅报纸的人看作是观察者,把报纸看作被观察对象。每当有新的新...

2023-01-01

C#泛型集合类型实现添加和遍历

在"C#中List<T>是怎么存放元素的"中,分析了List<T>的源码,了解了List<T>是如何存放元素的。这次,就自定义一个泛型集合类型,可实现添加元素,并支持遍历该泛型集合类型一定需要一...

2023-01-01

C#使用Task实现并行编程

故事背景透着纱的窗外的阳光, 又是一个星期一.慢慢来一看时间, 还早, 那么蹦跶起来穿衣刷牙洗脸用代码来说的话, 应该是这样:// Program.csusing System;using System.Diagn...

2023-01-01

C#优雅的实现INotifyPropertyChanged接口

INotifyPropertyChanged接口在WPF或WinFrom程序中使用还是经常用到,常用于通知界面属性变更。标准写法如下: class NotifyObject : INotifyPropertyChanged { pr...

2023-01-01

Winform控件优化之圆角按钮2

目录前言圆角按钮实现的进一步优化主要功能【圆角方面】OnPaint方法中不要使用e.ClipRectangle重新创建Region的锯齿问题和优势代码具体实现测试扩展按钮控件ButtonProTextR...

2023-01-01

C#实现多文件压缩与解压功能

目录实现功能开发环境实现代码实现效果这个功能没什么可介绍的,大家都懂,直接上代码了。。实现功能选择多个文件压缩成ZIP文件和解压ZIP文件开发环境开发工具: Visual Studio 2...

2023-01-01

UpdateLayeredWindow实现任意异形窗口使用详解

目录引言Sample放置子控件Sample其他问题Bug引言前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果对于SetWindowRgn,它通过一个Rgn来...

2023-01-01

C#实现单例模式的6种方法小结

目录介绍Version 1 - 非线程安全Version 2 - 简单的线程安全Version 3 - Double-check locking的线程安全Version 4 - 不完全懒汉式,但不加锁的线程安全Version 5 - 完全懒汉...

2023-01-01

C#仿QQ实现简单的截图功能

目录实现功能开发环境实现代码实现效果接上一篇写的截取电脑屏幕,我们在原来的基础上加一个选择区域的功能,实现自定义选择截图。个人比较懒,上一篇的代码就不重新设计了,就简单...

2023-01-01

C# 设置Chart的X轴为时间轴​​​​​​​详情

目录前言界面设计效果展示代码逻辑前言将Chart的X轴设置为时间轴是一个说简单不简单的问题,说难也不难的问题,你用过之后呢就感觉很容易,你没用过呢,就比较难,所以这个是很值得我...

2023-01-01

C#在Entity Framework中实现事务回滚

在使用Entity Framework为主从表添加数据,当一个表添加数据成功,另一个表添加数据失败,这时候就需要用到事务回滚。比如有以下关系的2张表。客户端使用TransactionScope类可以...

2023-01-01

C#中数组扩容的几种方式介绍

假设有一个规定长度的数组,如何扩容呢?最容易想到的是通过如下方式扩容: class Program { static void Main(string[] args) { int[] arrs = n...

2023-01-01

C#中new操作符的工作机制

使用new操作符来创建对象,其背后到底发生了什么?有一个父类Animal,Dog派生于Animal。 class Program { static void Main(string[] args) { D...

2023-01-01

Winform控件优化Paint事件实现圆角组件及提取绘制圆角的方法

目录前言Paint事件中实现圆角控件提取绘制圆角矩形和旁边小尖角的代码为扩展方法介绍扩展方法测试尖角的显示位置重绘控件后文本的处理同时重绘文本通过添加Label控件实现对...

2023-01-01

C# form-data上传图片流到远程服务器的详细代码

先贴代码,后面做一些简单说明:public static string sendPostHttpRequest_2(string url, byte[] postBytes, string contentType= "multipart/form-data; boundary=--------...

2023-01-01

C#实现文件与字符串互转的方法详解

目录实现功能开发环境实现代码实现效果嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输,为了保...

2023-01-01

C# using的本质及使用详解

目录01.点明观点02.C#中,using的两个作用03.using如何实现资源释放04.实践探索05.总结01.点明观点C#中,非托管资源使用之后必须释放,而using()是使用非托管资源的最佳方式,可以...

2023-01-01

C# Random类随机函数实例详解

目录引言一、创建界面二、效果展示三、Random类方法四、代码逻辑总结:引言Random类是非常值得学习的一个类,所以我们今天一起学习一下Random这个类,对于模拟数据这个是随机类可...

2023-01-01

C#中的属性解析(get、set、value)

目录C#中的属性(get、set、value)C#中属性的定义C#中的属性(get、set、value)C#语言在面向对象设计和编程中对数据安全提出了严格的要求,其中一个重要的原则就是数据封装。根...

2023-01-01

C#中的var关键字用法介绍

从.NET 3.0开始,在方法内部可以使用var关键字声明局部变量。var关键字到底是什么?在何种情况下使用呢?var关键字用来隐式地声明一个数据类型,变量类型是在编译期确定的,而不是在...

2023-01-01

C#各种异常处理方式总结

.NET的异常处理机制用来发现、处理运行时错误。如果开发人员没有提供异常的处理机制,就默认采用.NET的机制。通常使用try...catch...finally捕获异常。try{ //有可能发生...

2023-01-01

C#实现模拟ATM自动取款机功能

目录(1)关于用户帐号的类:Account(2)关于银行数据库的类:BankDatabase(3)关于ATM屏幕显示的类:Screen(4)关于ATM键盘的类:Keypad(5)关于进钞、出钞口的类:DepositSlot(6)关于ATM...

2023-01-01

Winform控件优化之圆角按钮1

目录前言圆角按钮实现【重写OnPaint实现圆角绘制】代码主要关键点或思路、优化使用圆角按钮利用填充内外两层圆角矩形路径形成Border通过缩放实现正确的内外两层圆角矩形路...

2023-01-01

C#实现接收QQ邮件的示例代码

目录实现功能开发环境实现代码前面写了一篇通过smtp协议利用qq邮箱去实现发送邮件的功能。这一篇我们使用pop协议来实现一下接收邮件。由于邮件的内容类型比较丰富,我暂时没...

2023-01-01

C#实现一键清空控件值的示例代码

目录场景需求开发环境开发工具实现代码实现效果代码解析场景在任何一个Form表单的操作页面或者数据台账的查询页面,基本都会看到一个清除的按钮,其功能就是用来清除我们需要抛...

2023-01-01

C#中const,readonly和static关键字的用法介绍

如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢?constconst默认是静态的,可以通过"类名....

2023-01-01

通过 C#/VB.NET 代码将 Excel 工作表拆分为单独的文件

目录前言程序环境具体步骤完整代码效果图前言随着数据的不断扩大,有的数据表的规模会以几何级增长,当数据达到一定规模时,数据的查询,读取性能就会变得缓慢,这时就需要拆分数据表...

2023-01-01

C#序列化与反序列化集合对象并进行版本控制

当涉及到跨进程甚至是跨域传输数据的时候,我们需要把对象序列化和反序列化。首先可以使用Serializable特性。 [Serializable] public class Person { public...

2023-01-01

WPF使用DrawingContext实现绘制刻度条

WPF 使用 DrawingContext 绘制刻度条框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;定义Interval步长、SpanInterval间隔步长、MiddleMask中间步长。...

2023-01-01

详解C# WinForm如何优雅的处理异常

目录场景需求开发环境开发工具实现代码实现效果代码解析场景在运行、调试代码的时候,往往会遇到一些异常情况,很多时候我们代码写得足够健壮,所以出现的概率比较低,但是如果一旦...

2023-01-01

C#非托管泄漏中HEAP_ENTRY的Size对不上解析

目录一:背景1. 讲故事二:如何正确推导1. 原理是什么?2. 通过汇编观察编解码逻辑3. 寻找 edi 所属的堆块总结一:背景1. 讲故事前段时间有位朋友在分析他的非托管泄漏时,发现NT堆的...

2023-01-01

Winform开发中使用下拉列表展示字典数据的几种方式

在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷、统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔...

2023-01-01

WPF利用DrawingContext实现绘制温度计

WPF 使用 DrawingContext 绘制温度计框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;定义Interval步长、MaxValue最大温度值、MinValue最小温度值。Cu...

2023-01-01

WPF实现自带触控键盘的文本框

一 引入项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示:二 KeyboardControl先实现一个自定义的KeyboardControl,它继承自Wind...

2023-01-01
返回顶部
顶部