C#
1
设计模式之装饰模式

装饰模式 Decorator Intro 装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活 使用场景 装饰模式是为已有功能动态地添加更多功能的一种方式 当系统需要新功能的时候,是向旧的类中添加新的代码,这些新加的代码通常装饰了原有类的核心职责或主要行为,但是往 ...

WeihanLi @ 2020/07/30

2
C#泛型的类型参数约束

约束告知编译器类型参数必须具备的功能。 在没有任何约束的情况下,类型参数可以是任何类型。 编译器只能假定 System.Object 的成员,它是任何 .NET 类型的最终基类。 如果客户端代码使用不满足约束的类型,编译器将发出错误。 通过使用 where 上下文关键字指定约束。 最常用的泛型约束为... ...

time-flies @ 2020/07/30

3
C#拆分中文和数字字符串

比如要拆分“呵呵呵90909086676喝喝999”,下面当type=0返回的是中文字符串“呵呵呵,喝喝”,type=1返回的是数字字符串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...

舒碧 @ 2020/07/29

5
设计模式之组合模式

组合模式 Composite Intro 组合模式,将对象组合成树形结构以表示 “部分-整体” 的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 主要解决:它在我们树型 ...

WeihanLi @ 2020/07/28

6
20200728-直接提取压缩包里的文件

一 使用背景: 通过Http 请求下载一个压缩的文件到服务器内存中(重点:不用保存到本地),然后通过代码直接提取压缩包的文件 二 实现思路:(注:需要提前安装 ICSharpCode.SharpZipLib.dll) 1 通过Http请求下载压缩文件到服务器的内存中 2 读取内存中压缩的包的流(注意 ...

卖身也卖艺 @ 2020/07/28

7
c#购物车功能实现及收藏功能实现

一.思路逻辑: 首先我先来说一下我自己的理解,一个萌新的见解,要实现购物车的功能,首先要获取到登录时的用户id及商品的编号(商品id),这里我用的模式是mvc模式进行实现功能的,用户登录时,利用session保存用户的登录用户名,然后在控制器里进行传值操作,定义一个session进行接收用户输入的用 ...

泽弟 @ 2020/07/27

8
设计模式之桥接模式

将抽象部分与它的实现部分分离,使得它们都可以独立地变化,桥接模式 ...

WeihanLi @ 2020/07/27

9
简单实用算法——二分查找法(BinarySearch)

二分查找(英语:binary search),也叫折半查找(英语:half-interval search),是一种在有序数组中查找特定元素的搜索算法。所以,二分查找的前提是数组必须是有序的。 二分查找只适用顺序存储结构。为保持表的有序性,在顺序结构里插入和删除都必须移动大量的结点。因此,二分查找特... ...

time-flies @ 2020/07/26

10
配置文件初始化异常Configuration system failed to initialize

最近用户反映一些电脑启动程序就崩溃,还给演示了一个比较诡异的问题 “把软件重新拷贝到另外一个目录,就能正常运行"。还说过一段时间又不能运行需要在换个位置。 ’由于当时没有设置全局异常,只能借助系统操作日志来分析, 系统日志记录不全,就说发生一个异常程序挂掉。 就简单加上全局异常捕获。 public ...

ColorsWin @ 2020/07/26

11
设计模式之适配器模式

设计模式之适配器模式 Intro 适配器模式(Adapter),将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。也被称为 Wrapper 模式。 通常这个类是外部的类,不能直接修改,所以需要做一层包装,以适配 ...

WeihanLi @ 2020/07/24

12
C#委托进阶,事件和委托,一次就看明白,附源码

需求背景 猫叫触发一系列的动作或者说触发一系列事件,猫叫导致狗叫,小孩哭,Mom跑。 代码结构申明 1 /// <summary> 2 /// 接口类 3 /// </summary> 4 public interface IObeject 5 { 6 /// <summary> 7 /// 提供该 ...

滑猪小板 @ 2020/07/23

13
C#标准事件流

服装价格变动,触发淘宝发布活动和消费者购买衣服事件流 1 public class EventStandard 2 { 3 public class Clothes { 4 5 /// <summary> 6 /// 服装编码 7 /// </summary> 8 public string Id ...

滑猪小板 @ 2020/07/23

14
WindowsForm模态对话框

模态对话框是指用户只能和当前对话框进行交互的窗口,常见的比如消息对话框,用户等待窗口这种,当然这不是固定使用。Windows Form中已经提供了通过窗口的ShowDialog()方法实现模态对话框。只是界面效果有些单一,所以本篇只是为模态对话框增添些界面效果的优化。 在网上看到有很多人用重绘OnP ...

zhuanghamiao @ 2020/07/23

15
C#中使用ajax请求

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。 ...

时光巷尾 @ 2020/07/23

16
C#中Session的用法详细介绍

Session中文是“会话”的意思,在ASP.NET中代表了服务器与客户端之间的“会话”。Session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个Session结束。引用Session 则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。 ...

时光巷尾 @ 2020/07/23

17
简单实用算法——位图算法(BitMap)

BitMap的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此可以大大节省存储空间。 BitMap可以看成一种数据结构。 ...

time-flies @ 2020/07/23

18
异常System.AccessViolationException的处理方式

最近用FFmpeg处理视频, 提示“”当代码尝试读取或写入无法访问的内存“”,然后程序退出。已经设置全局异常也没有捕获到。 C#调用非托管方法程序容易奔溃,原因是非退托管代码报的异常未能被捕获到。记录一下两种解决方法: 一、使用配置文件兼容以前代码 为了与旧代码兼容,在app.config添加leg ...

ColorsWin @ 2020/07/22

19
简单实用算法—分布式自增ID算法snowflake(雪花算法)

分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初T... ...

time-flies @ 2020/07/22

20
linq介绍及工作中应用两例——左联与内联,linq循环方法

#1 linq介绍 ##1.1 linq产生背景 一个应用服务后台程序,肯定会需要格式各样的数据检索跟操作,而这些数据在过去的这些年里一般都会包含在关系型数据库或者xml文件中。 .Net3.5版本发行之前,传统的数据源访问方式就是直接对数据库或者xml文件进行检索操作。在.Net3.5 Visua ...

JerryMouseLi @ 2020/07/22