C#面向对象
文章平均质量分 73
半杯新酒
天道酬勤,勤能补拙;
展开
-
C# 嵌入式数据库LiteDB
之前就有写过LiteDB数据库相关的一篇文章,不过内容比较简单,简单的增删查改,最近项目中又有场景要用到数据库,索性重新写了一篇。原创 2022-11-07 11:49:58 · 3642 阅读 · 0 评论 -
C# AutoResetEvent
C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。原创 2022-06-17 15:40:11 · 5657 阅读 · 0 评论 -
C#同步委托与异步委托学习总结
C#异步委托与同步委托学习总结原创 2021-12-01 16:28:22 · 5305 阅读 · 0 评论 -
C# delegate、event、Action、Func使用案例解析
C# 中 delegate、event、Action、Func使用案例解析一:delegate与event配合使用public static class Evt_Test { public static string strEquals(string str1, string str2) { Console.WriteLine(str1 + str2); return str1.Concat(str2).T原创 2020-12-09 14:05:54 · 3593 阅读 · 0 评论 -
《C#设计模式》【观察者模式】
Observer 与 Subject互为耦合,但是这种耦合的双方都依赖于抽象,而不依赖于具体。一、观察者模式目的我们都知道解决一个问题有N种解决方式,但在面向对象的设计中如何能做到“高内聚,低耦合”,设计可重用的对象才是我们追求的。在设计过程中,我们经常会接触到一种情况:一个对象的行为引发其它多个对象相应的行为。这时我们便可以通过观察者模式的设计思想来设计对象模型。概述观察者模式(Observer Pattern)是设计模式中行为模式的一种,它解决了上述具有一对多依赖关系的对象的.原创 2020-12-03 11:20:14 · 255 阅读 · 0 评论 -
C# 9.0 新特性 语法糖
C# 9.0 新特性 语法糖原文链接:原文出处C# 9.0 正在成形,我想和大家分享一下我们对下一版本语言中添加的一些主要特性的想法。对于 C# 的每一个新版本,我们都在努力让常见的编码场景的实现变得更加清晰和简单,C# 9.0 也不例外。这次特别关注的是支持数据模型的简洁和不可变表示。就让我们一探究竟吧!一、仅初始化(init-only)属性对象初始化器非常棒。它们为类型的客户端提供了一种非常灵活和可读的格式来创建对象,并且特别适合于嵌套对象的创建,让你可以一次性创建整个.转载 2020-11-13 15:34:34 · 3977 阅读 · 0 评论 -
《C#设计模式》《原型模式》
一:案例场景在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这就会增加创建类的复杂度和创建过程与客户代码复杂的耦合度。如果采用工厂模式来创建这样的实例对象的话,随着产品类的不断增加,导致子类的数量不断增多,也导致了相应工厂类的增加,维护的代码维度增加了,因为有产品和工厂两个维度了,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适。由于每个类实例都是相同的,这个相同指的是类型相同,但是每个实例的状态原创 2020-07-17 09:50:03 · 221 阅读 · 0 评论 -
《C#设计模式》【外观模式】
一:案例场景生活中,比如笔记本是一个整体,看似是一件东西,实际上只是将主机和显示器组装在一起而已,对外提供一个电源按钮,当按下电源按钮的时候,启动了主机和显示器,这里的这个电源按钮就差不多是外观模式,对外只提供了一个电源按钮。二:概念定义外观模式(Facade)的定义:为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。三:案例解析某文件系统管理,包括文件的读取,加密,解密,用外观模式实现该系统功能。【具体实现如下: //加密类 pu...原创 2020-07-10 14:59:23 · 257 阅读 · 0 评论 -
《C#设计模式》【装饰者模式】
一:案例场景在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给房子添加安防,房子暖气,房子防水等,如果此时利用继承来实现的话,就需要定义无数的类,如HouseSecuity(安防类)、HouseWarm(暖气类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我们可以使用装饰者模式来动态地给一个对象添加额外的职责。下面让我们看看装饰者模式。二:概念定义装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相比生成子类可以更灵活地增加功能。三:案...原创 2020-07-07 09:52:51 · 644 阅读 · 2 评论 -
C# 跨线程访问UI线程控件
C# 跨线程访问UI线程控件在C#中,由于使用线程和调用UI的线程属于两个不同的线程,如果在线程中直接设置UI元素的属性,此时就会出现跨线程错误。下面介绍两种解决方案第一种:使用控件自带的Invoke或者BeginInvoke方法。 Task.Factory.StartNew(() => { this.button1....原创 2020-04-24 16:32:00 · 1007 阅读 · 0 评论 -
《C#设计模式》【单例模式】
《C#设计模式》- 单例模式深度解析六种单例模式实现方法,以及安全,性能分析第一种:不是线程安全的public sealed class Singleton { private static Singleton instance = null ; private Singleton() { } public s...原创 2019-12-11 11:26:20 · 576 阅读 · 0 评论 -
《C#设计模式》 【模板方法模式】
1、C#设计模式-模板方法模式模板方法模式:提到模板我们经常会想到简历模板/PPT模板等,以简历模板为例,不同的人可以使用一样的简历模板,在填充内容时根据自己的名字/工作经历等填写自己的内容,从而形成不同的简历。在OO中模板方法模式和现实中的模板十分相似,首先要有一个封装了不可变部分的抽象类(简历的大致结构,都有姓名、性别、年龄、工作经历等),然后将可变部分延迟到子类中(不同人的简历内容不同...原创 2019-12-11 11:07:25 · 292 阅读 · 0 评论 -
C# 总结ManualResetEvent与AutoResetEvent【二】
接上篇C# 总结ManualResetEvent与AutoResetEventC# 总结ManualResetEvent与AutoResetEvent public class TestAutoResetEvent { Thread thin; Thread thout; Queue<int> enqueen =...原创 2019-12-03 15:32:25 · 299 阅读 · 0 评论 -
C# 多线程、异步线程(TaskFactory )、线程同步 (Parallel)
1、Task举例1.案例场景,现在有server有一个不固定数的任务请求,假设是个,但是做的是相同的事情。简而言之就是根据server端的请求个数来到Client来动态的开线程,调用Client的程序逻辑。方式一: List<System.Threading.Tasks.Task> taskList = new List<System.Threading.T...原创 2019-11-21 16:25:42 · 2615 阅读 · 0 评论 -
浅析 C# Lock
Lock的定义以及概念实现线程同步的第一种方式是我们经常使用的lock关键字,它将包围的语句块标记为临界区,这样一次只有一个线程进入临界区并执行代码。下面第一段的几行代码是关于lock关键字的使用方式,但更重要的是我们可以通过这个例子来看到lock关键字的本质。第二段是这个方法的IL指令集,从中可以看到lock其实也是一个语法糖,它的内部实现是采用了监视器Monitor。lock关...原创 2019-09-05 16:32:31 · 6458 阅读 · 0 评论 -
C# 总结ManualResetEvent与AutoResetEvent【一】
C# 总结ManualResetEvent与AutoResetEvent【一】ManualResetEvent:ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 ManualResetEvent 置于非终止状态,此线程可被...原创 2019-04-23 16:51:31 · 2672 阅读 · 0 评论 -
《C#设计模式》 工厂三兄弟之 【简单工厂模式】,【工厂方法模式】,【抽象工厂模式】
《C#设计模式》 三种工厂设计模式 【简单工厂模式】 【工厂方法模式】 【抽象工厂模式】 第一种:简单工厂模式一:【简单工厂模式】简单工厂模式概念(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简...原创 2019-02-18 17:06:53 · 1953 阅读 · 3 评论 -
C#浅析接口与抽象基类-学习总结
C#浅析接口与抽象基类--学习总结1. 个性大于共性。 2. 差异较大的个性间具有某些相同的行为。 3. 相同行为的实现方式有较大区别。开门见山:当在差异较大的对象间寻求功能上的共性时,使用接口。当在共性较多的对象间寻求功能上的差异时,使用抽象基类。接口案例://======================================...原创 2019-02-15 17:00:48 · 845 阅读 · 0 评论