自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 视觉基础知识之通道

彩色图像通常使用RGB模式,有三个通道:红色(R),绿色(G),和蓝色(B)。例如,(255, 0, 0)表示红色,(0, 255, 0)表示绿色,(0, 0, 255)表示蓝色,(255, 255, 255)表示白色,(0, 0, 0)表示黑色。在灰度图像中,每个像素的值通常在0(黑色)到255(白色)之间变化,其中间的值表示不同的灰度。有些彩色图像还有一个额外的通道,通常被称为alpha通道,用于表示像素的透明度。所以,简单来说,灰度图像只有一个通道,而彩色图像有三个(RGB)或四个(RGBA)通道。

2024-02-23 14:36:20 426 1

原创 WPF之DataGrid的DataGridTemplateColumn内的Checkbox改变状态后不触发OnPropertyChanged

【代码】WPF之DataGrid的DataGridTemplateColumn内的Checkbox改变状态后不触发OnPropertyChanged。

2024-01-25 11:20:11 548

原创 WPF之鼠标快速移动进出Textbox导致联动的控件显示卡顿解决方案

防抖和节流是两种常用的控制函数调用频率的技术,防抖是将多次执行变为最后一次执行,节流是将多次执行变为在规定时间内只执行一次。这两种技术可以减少在短时间内产生大量的事件处理器调用,从而提高应用的性能。事件处理器在处理事件时需要进行复杂的计算或者I/O操作,你可以考虑使用异步编程来避免阻塞UI线程。但是请注意,你不能在非UI线程中直接修改UI元素的属性,你需要使用。虚拟化可以减少在任何给定时间需要渲染的元素的数量,从而提高应用的性能。:如果你的数据绑定是造成卡顿的原因,你可以考虑优化你的数据绑定。

2024-01-25 09:45:08 532

原创 计算机视觉的基本概念和技术有哪些?

光流和运动估计:这是估计图像序列中物体运动的过程,例如使用Lucas-Kanade方法和Horn-Schunck方法。以上只是计算机视觉的一部分概念和技术,实际上计算机视觉是一个非常广泛和深入的领域,还包括许多其他的概念和技术。目标检测和识别:这是识别图像中特定对象的过程,例如使用Haar级联、R-CNN、YOLO等技术。图像处理:这是计算机视觉的基础,包括图像的基本操作,如滤波、边缘检测、色彩空间转换等。场景理解:这是理解图像中的场景,包括场景分类、场景分割和场景解析。

2023-11-17 13:46:49 553

原创 wpf自定义控件-单/双箭头线

【代码】wpf自定义控件-单/双箭头线。

2023-07-27 16:18:37 1070

原创 WPF-如何调用其他项目的通用控件样式

公司要求设计软件时风格一致,在开发中,如果要求每个员工这样做,无疑是重复造轮子,降低开发效率。所以形成简单、基础、统一的WPF控件库,给开发同事调用,非常有必要。我们从github上download一份开源代码,经过一段时间的改造,目前支持文本框、按钮、单选框、下拉框、选项卡...今天开始尝试投入业务开发中。那么,如何在业务代码的框架中调用这套基础的样式库呢?添加样式库生成的dll引用App.xaml指定资源字典。

2023-02-16 15:53:32 653

原创 FtpWebRequest实战总结

Ftp通过网络传输,用流文件的方式上传,特别在验证路径时,通过拆分每一级目录,对每级目录上传和删除的操作,增加网络和IO的消耗,操作FTP服务器频率高导致的偶尔失败。最简单并且能马上解决问题的办法是封装上方循环目录的部分代码,在try和catch里分别调用一次,可减少该问题发生的概率。我使用的第二种方式,本地测试过程是没有问题的。但没有考虑到现场复杂性,整个流程单次进行能正常运行,流程一个接一个时,这里就报错,导致图片上传老是漏几张。上传图片前需验证当前路径,如果不存在,要创建路径后再写入流文件。

2023-02-15 10:04:38 837

转载 C# winform 屏蔽鼠标右键小技巧

4. 你可以将Application.AddMessageFilter()放到任何你想起作用的地方,也随时可以Application.RemoveMessageFilter(this)2.在构造函数中添加:Application.AddMessageFilter(this);1.先让窗体类继承IMessageFilter接口。//不响应鼠标右键消息。按步骤即可成功屏蔽。...

2022-08-29 09:31:58 1400

原创 在.netCore里使用SqlSugar调用mysql存储过程

存储过程脚本:CREATE DEFINER=`root`@`%` PROCEDURE `CalcCompletionPercentByItem`(IN `pitemId` varchar(50),out `c` decimal(15,2))label:BEGIN declare taskcnt int; declare FinishedCnt int; set taskcnt=(select count(1) from itemtask where ItemId=pitem

2021-10-15 15:22:08 1578

原创 英文溢出屏幕问题

div常规情况可通过指定宽高、overflow属性控制文字溢出原本空间宽度问题。英文例外,原因是CSS word-break 默认值:object.style.wordBreak="keep-all"、normal 使用浏览器默认的换行规则。 break-all 允许在单词内换行。 keep-all 只能在半角空格或连字符处换行。 所以单独加上属性:work-break:beak-all即可...

2021-08-27 16:31:05 171

原创 sql之char和varchar、nvarchar区别

char:固定大小字符串数据,字符串长度8000,占用空间nnchar:固定大小字符串数据,字符串长度4000,存储大小为 n 字节的两倍varchar:可变大小字符串数据,字符串长度可以是8000,max最大是2G。占用空间n+2当varchar(max)长度<8000时,存储机制跟常规varchar一样。当存储字符长度>8000时,存储机制和text一样。nvarchar:可变大小字符串数据,字符串长度4000,存储大小为 n 字节的两倍 + 2 个字节...

2020-12-15 11:35:10 386

原创 面向对象设计基本原则之接口隔离原则

接口隔离原则,Interface Segregation Principle,简称 ISP定义:1.客户端不应该依赖它不需要的接口2.类间的依赖关系应该建立在最小的接口上通俗点讲:接口尽量细化。指每个模块有专门的接口,几个模块就应该有几个接口,而不是一个庞大臃肿的接口,容纳所有的客户端访问。...

2020-12-07 17:18:15 113

原创 开启多线程的四种方式

Thread类1.TreadStart方法,无入参 int arg1 = 10; string arg2 = "argument temp"; Thread t1 = new Thread(new ThreadStart( delegate { Console.WriteLine(arg1.ToString() + ar

2020-12-07 15:55:53 2275

原创 MVC解决跨域

中心思想:在响应头里指定Access-Control-Allow-Origin,实现方式1:引用包WebApi.Cors。通过在配置中添加或在Controller或在Action上添加特性EnableCors来实现实现方式2:1,在web.config文件中的 system.webServer 节点下 增加如下配置<httpProtocol> <customHeaders> <add name="Ac

2020-12-04 11:06:14 365

原创 Nginx之负载均衡算法初感

Nginx其中一大特性是负载均衡,通过对服务器的反向代理,实现高并发高可用。upstream模块能使用3种负载均衡算法:1.轮询rountd-robin:轮询算法是基于在队列中谁是下一个的原理确保将访问量均匀地分配给每一个上游服务器的。2.IP哈希ip_hash:同一个ip地址池的地址总说被映射到同一个上游服务器。这个机制目的不是要确保公平分配给每个一个上游服务器,而是在客户端和上游服务器之间实现一种映射。应用在具有会员的程序中3.最少连接数least connection:通过选择一.

2020-12-04 10:25:58 86

原创 面试提问之GET和POST两种基本请求方法的区别

GET和POST是什么?HTTP协议中的两种发送请求的方法。HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP。GET和POST本质上就是TCP连接,并无差别。1.由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。2.GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和d...

2020-12-04 10:19:37 187

原创 C#Redis之二感

Redis 特性:1.基于内存运行,性能搞笑2.支持分布式,可无限拓展3.key-value存储系统4.开源,并提供多种语言的api相比较于其他数据库类型,redis具备特点是1.C/S通讯模型2.单进程单线程模型3.丰富的数据类型4.操作具有原子性5.持久化6.高并发读写应用场景:计算器/限速器,利用redis原子性自增操作,可统计类似用户点赞数、用户访问数等操作好友关系,利用集合命令求交集、并集、差集等。可以方便搞定共同好友、共同爱好之..

2020-11-25 13:40:43 91

原创 EntityFramework实现分页技巧

大纲:Take()方法的作用是从查询结果中提取前n个结果;而Skip()方法则是跳过前n个结果,返回剩余的结果

2020-11-24 17:34:11 178

原创 设计模式之策略模式初感

策略模式(Strategy Pattern),也叫做政策模式(Policy Pattern)。策略模式使用的是面向对象的继承和多态机制,分为三个角色1.Context封装角色也叫做上下文角色,起承上启下封装左右,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化2.Strategy抽象策略角色策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性。3.ConcreteStrategy具体策略角色实现抽象策略中的操作,该类具有具体的算法。优点:1.

2020-11-23 17:34:25 81

原创 .net core之认证

一般在应用程序中,安全分为前后两个步骤:验证和授权验证:负责检查当前请求者的身份;授权:根据验证得到的身份决定当前请求者是否能够访问期待的资源。验证包含3个操作:1.Authenticate验证 验证操作负责基于当前请求的上下文,使用来自请求中的信息,例如请求头、Cooke等等来构造用户标识。构建的结果是一个AuthenticateResult对象,它指示了验证是否成功,如果成功的话,用户标识将可在验证票据中找到。 常见的验证包括: a.基于Cookie的验证,从请求的...

2020-11-23 16:31:13 504

原创 .net core之内存缓存

IMemoryCache和IDistributedCache用于缓存的内置机制,所有其他技术都是从这两个接口实现。其中IMemoryCache将被用于告诉缓存的基础,却不是唯一可用于缓存的办法,存在拓展各种丰富的api并极大地促进其作用缓存API:使用IMemoryCache存储和检索项目,要使用Set()方法写入方法,从缓存中检索对象使用Get()方法。如果不确定缓存中是否存在特定的密钥,则可以使用TryGetValue()提前判断,返会布尔值。另一种方法GetOnCreate()方法验证所需

2020-11-20 14:53:01 489

原创 面向对象设计基本原则之依赖倒置原则

依赖倒置原则,Dependence Inversion Principle,简称 DIP含义:1.高层模块不应该依赖低层模块,两者都应该依赖其对象;2.抽象不应该依赖细节;3.细节应该依赖抽象;在JAVA语言中的表现是:1.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;2.接口或抽象类不依赖于实现类;3.实现类依赖接口或抽象类。更加精简的定义就算“面向接口编程”------OOD(Object-Oriented ..

2020-11-19 17:42:26 152

原创 面向对象设计基本原则之里氏替换原则

里式替换原则,Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的对象。),简称LSP原则规范:1.子类必须完全实现父类的方法注意:在父类调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则;如果子类不能完整地.

2020-11-17 13:56:39 116

原创 C#线程之同步上下文

SynchronizationContext:提供在各种同步模型中传播同步上下文的基本功能就是对当前线程上下文的封装,或者叫当前线程所在环境的封装。封装的对象可以传递至其他线程,然后在其他线程中调用其post或send方法,以此来实现线程间的消息传播。我们知道,异步方法在遇到await之前都在当前线程中执行,当执行完await这行后,方法就会退出,然后会将await之后的代码封装成委托另外,Task对象有一个ConfigureAwait方法,用来配置是否同步上下文。尝试将延续任务封送回原始上下文

2020-11-17 11:04:44 1050

原创 C#Redis之初感

Redis是一种非关系型数据库(关系型数据库即SQL sqlserver,my sql 等),但多用于缓存技术,因为它是一种内存缓存数据库,存储数据的方式为key-value,即键值对,而且支持多种数据类型,如:string、list、set、zset、hash。特点:1.redis以内存作为存储的介质,读写效率极高,远超过数据库2.redis存储的数据是持久化的,不会因为断电重启造成的数据丢失。因为redis的存储分为内存存储,磁盘存储和log文件三部分。重启后,redis从磁盘重...

2020-11-16 13:31:21 97

原创 .Net性能调优思路

1.空间换时间缓存就是典型的例子,将数据额外存储一份,下次直接重用,空间换时间。2.时间换空间大文件处理时,切分数据分批次处理,花更多时间,用更少时间完成处理3.分治思想典型的归并排序、快排、都是将数据分成小块排序最终再合并,分而治之4.异步化各种消息队列就是典型的案例,将业务分拆,避免阻塞,提升吞吐量5.并行包括多线程和单线程多进程两种模式,就是将任务分开,同时执行以加快速度6.集群化提供良好的扩展能力,更多的资源换区更好的性能...

2020-11-06 17:44:59 243

原创 面向对象设计基本原则之单一职责原则

单一职责原则,Single Responsibility Principle,简称SRP。其定义是一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚低耦合的知道方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离优点:1.类的复杂性降低,实现什么职责都有清晰明确的定义2.可读性提高,复杂性降低3.可维护性提高,可读性提高4.变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口将修改只对相应的实..

2020-10-29 14:54:01 243

转载 架构之RESTful

REST全称是Representtational State Transfer,意思是表现层状态转化REST是一种软件架构风格,它本身并没有创建新的技术、组件或者服务。使用web的现有特征和能力,增加一些约束和准则。这里描述的REST也是通过HTTP实现的REST1.1 资源在REST中最重要的一个概念就是资源。在面向对象的世界里,我们提倡万物皆对象,而在REST的世界里则是万物皆资源。所谓“资源”,就是网络上的一个实体,或者说是网络上的一个具体信息。1.2 表现层“资源”是一种信息实体

2020-10-19 10:56:37 186

转载 .net core之IOC初感

概念1.什么是IOCInversion of control即控制反转,一种设计思想,也是一个目标。有两个优点:解耦;屏蔽对象的实现细节。2.什么是DI全称为:Dependency Injection,由容器动态的将某个依赖的关系注入到组件之中。容器创建好实例后再注入调用者称为依赖注入。3.IOC和DI的联系IOC是一种设计思想,DI是实现的技术。谁依赖谁:应用程序依赖于IOC容器;为什么需要依赖:应用程序需要IOC容器来提供对象需要的外部资源;谁注入谁:IOC容器注入.

2020-10-16 16:01:03 168

原创 C#基础之集合初感

控制反转:调用者将创建实例的控制器交给IOC容器,由容器创建,称之为控制反转依赖注入:容器创建好实例后再注入给调用者的过程称为依赖注入。依赖注入技术让我们的应用程序实现了松散耦合。...

2020-10-15 16:40:18 69

原创 c#基础之Action<T>委托

当要把方法传给其他方法时,需要使用委托。当前使用场景是数据库上下文注册表时,在底层已注册框架的基础数据表,导致业务系统需要传入DbModelBuilder类继续注册业务数据表。这时暂时不清楚业务系统具体内容,先把Action<DbModelBuilder>作为参数带入到注册入口方法,这里将展示部分代码讲述大概思路:1.程序入口,向上下文注册表 public class MvcApplication : System.Web.HttpApplication {

2020-09-23 12:20:39 540

转载 .net core中间件之属性路由

传统路由传统路由建立的URL路径约定:{controller=Home}/{action=index}/{id?}调用方式:/api/test2/ListProductsRest Api的属性路由属性路由使用一组属性将操作直接映射到路由模板。下面是StartUp.Configure是Rest Api的典型代码public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { ...

2020-09-22 11:31:57 519 1

转载 MVC过滤器特性

1、概括  MVC提供的几种过滤器其实也是一种特性(Attribute),MVC支持的过滤器类型有四种,分别是:AuthorizationFilter(授权),ActionFilter(行为),ResultFilter(结果)和ExceptionFilter(异常),他们分别对应了四个筛选器接口IAuthorizationFilter、IActionFilter、IResultFilter和IExceptionFilter。这四种筛选器都有派生于一个公共的类FilterAttribute,该类指定了筛选

2020-09-18 09:19:05 259

原创 Exception捕捉问题

昨天线上日志有错误提示。内容大概是返回到页面提示的异常信息后,日志又标记了和业务不相关的Exception。初步诊断程序没有出现异常,异常信息外包了一层try..catch,catch捕捉到的exception的一些代码错误位置等信息。这让我们当时很迷茫。 try { if (sfbz) { throw new FailedException("操作异常,已

2020-09-18 09:12:47 282

原创 C#基础之数组小结

属性:1.可以试一维、多维或交错的2.实例化时,确定数组数量和长度。这些在生存期内无法更改3.数值默认值为零,引用元素设置为null4.交错数组是数组的数组,元素为引用类型,初始化为null5.数组从零开始编制索引:包含N元素的数组从0索引到n-16.数组元素可以试任何类型,其中包括数组类型7.数组是Array派生的引用类型,由于此类型实现IEnumerable和IEnumerable<T>.因此可以在C#中的所有数组上使用foreach迭代一维数组(简单数.

2020-09-18 08:36:23 175

原创 C#基础之foreach语句

C#的foreach语句不会解析为IL代码中的foreach语句。C#编译器会把foreach语句转换成IEnumerable接口的属性和方法。 foreach (var item in Person) { Console.WriteLine(item); } Console.ReadLine();foreach语句会解析成下面的代码段。首先调用GetEnumerator()

2020-09-14 11:14:12 201

原创 C#基础之数组ArraySegment

结构ArraySegment<T>表示数组的一段,将整个数组传递给不同的方法。这些方法只使用数组的某个部分。方法的参数除了数组以外,还应包括数组内的偏移量以及该方法应该使用的元素数。 static int SumOfSegments(ArraySegment<int>[] segments) { int sum = 0; foreach (var item in segments) {

2020-09-14 10:52:50 3424

转载 算法图解之时间复杂度和大O表示法

什么是大O表示法?程序的时间复杂度分析。即分析一个算法对于给定数量的输入需要多长时间来完成任务。这通常定义为大O表示法。大O表示法就是将算法的所有步骤转换为代数项,然后排除不会对问题的整体复杂度产生较大影响的较低阶常数和系数。下面是一些常用的时间复杂度以及简单的定义。 **O(1)— **常量时间:给定一个大小为n的输入,概算法只需要一步就可以完成任务。 **O(log n)— **对数时间:给定大小为n的输入,该算法每执行一步,它完成任务所需要的步骤数目会以一定的因子减少.

2020-09-11 10:58:55 632 1

原创 C#基础之泛型Generic

泛型Generic 允许一个可以与任何数据类型一起工作的类或方法优点:1.性能不需要拆箱和装箱2.类型安全和object类相比,可以根据需要用特定的类型替换泛型类型,保证了数据安全类。3.二进制代码重用一次定义多次使用4.代码的扩展对于引用类型,会共享本地类的所有相同代码。只有值类型,才会每次实例化一个新类特性:使用泛型是一种增强程序功能的技术,具体如下:1.利于最大程度地重用代码、保护类型的安全以及提高性能。2.可以创建泛型集合类。.NET框架类库.

2020-09-09 13:36:04 236

转载 C#基础之抽象类和接口的区别

一、抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口:接口是引用类型的,类似于类,和抽象类的相似之处有三点: 1. 不能实例化; 2. 包含未实现的方法声明; 3. 派生类必须实现未实现的方法,抽象类是...

2020-09-02 13:51:57 108

DES加密解密源码

Des加密和解密源码,用VS2012写的

2014-04-02

Telerik控件初级学习笔记

主要是本人学习telerik控件时写的一些总结和心得,包含代码和解释。

2013-09-18

js实现图片轮播效果

js实现图片轮播效果 不错的资源,大家可以下载看看

2013-09-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除