自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 C#常看清单2:

当我们要写一个公共的方法,参数是为电机父类,使用此方法时,传进来不同的电机对象实例,那么调用的时候,会先执行电机对象的静态单例字段,再执行:base()方法,(执行父类构造之前,会先按照顺序将父类的字段属性先执行,再执行父类的构造函数),然后再执行子类的构造方法,然后再执行子类调用的父类方法。当我们的方法参数,是需要一个实时变化的值,参数应该用委托来做,比如如果用值类型的话,那么C#默认只会识别传进来的时候值类型的数值,外面即使变化了,此方法的值类型还不会变,所以应该使用委托来做参数。

2024-07-17 09:43:16 148

原创 WPF定时器的使用以及其他三种定时器的介绍

首先需要注意的是:在wpf中涉及到界面操作的话,一定要使用定时器DispatcherTime,DispatcherTimer是为wpf专门设计的,不然的话使用其他种类的定时器会提示界面资源被其他线程所拥有而无法更新界面。第一种:DispatcherTimer定时器,可以说是专门为WPF界面设计的定时器。C#有两种定时器,如果是写WPF上位机的话,自然是要用和UI同一个线程的定时器,不然要考虑跨线程的问题。4. 在需要开始定时器的地方,开启定时器或者在固定的时间点开始定时器任务。

2024-07-11 16:47:10 249

原创 C#常看清单1:

23、多态:基于.NET虚拟机特有的机制,使用继承或接口,作为方法的返回值、方法的参数,实际传递的时候或者返回的时候是对应的子类或接口实现类对象,对于接口或父类来讲,他们抽象的共同特征(抽象方法、接口)依据传递的子类对象或接口实现类对象的不同,从而表现不同的行为。6、窗体是一个最大的容器,所有的控件都添加到controls中,当在容器中添加相关的控件的时候,容器中的控件会添加到当前容器的controls中。读取程序集的信息,找到相关的类型,和类型的成员,也可得到相关的对象,而这种对象是基于“配置”的。

2024-07-10 09:27:33 591

原创 设计模式之建造者模式

(2)在抽象工厂模式中,客户端实例化工厂类,然后调用工厂方法获取所需产品对象,而在建造者模式中,客户端可以不直接调用建造者的相关方法,而是通过指挥者类来指导如何生成对象,包括对象的组装过程和建造步骤,它侧重于一步步构造一个复杂对象,返回一个完整的对象。建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子。在客户端代码中,无须关心产品对象的具体组装过程,只需确定具体建造者的类型即可,建造者模式将复杂对象的构建与对象的表现分离开来,这样使得同样的构建过程可以创建出不同的表现。

2024-06-28 14:27:01 386

原创 设计模式之迪米特原则

迪米特法则:如果两个类不必直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。根本思想:强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。迪米特原则也叫最少知识原则。

2024-06-28 13:20:07 87

原创 设计模式之依赖倒转原则

要针对接口编程,不要对实现编程。例如:无论主板、CPU、内存、硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的某个品牌的主板,那就会出现换内存需要把主板也换了的尴尬。A:高层模块不应该依赖低层模块。两个都应该依赖抽象。里氏替换原则:子类型必须能够替换掉它们的父类型。B:抽象不应该依赖细节。

2024-06-28 10:45:14 402

原创 设计模式之外观模式

此时用外观模式就非常合适。3、其次,在开发阶段,子系统往往因为不断地重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部嗲用它们的用户程序带来了使用上的困难,增加外观Facade可以提供一个简单的接口,减少她们之间的依赖。2、在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。

2024-06-28 10:10:42 274

原创 设计模式之装饰模式

装饰模式提供了一个非常好的解决方法:他把每个要装饰的功能放在单独的类中,并让这个类包装他所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地、按顺序的使用装饰功能包装对象。一个装饰基类继承于这个基础对象类,构造函数的参数类型是基础对象类。像俄罗斯套娃一样,每个装饰类都是独立存在的,但是他们却可以一个一个全部都装饰在同一个对象上面。装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式是为已有功能动态添加更多功能的一种方式。

2024-06-28 09:32:09 119

原创 设计模式之原型模式

net在system命名空间中提供了ICloneable接口,其中唯一的一个方法Clone(),这样只需要实现这个接口就可以完成原型模式了。深复制和浅复制的区别:浅复制会将值类型的字段执行逐位复制,如果是引用类型字段,则复制引用但不复制引用的对象。一般在初始化信息不发生变化的情况下,克隆是最好的办法,这既隐藏了对象创建的细节,又对性能是大大的提高。深复制,不仅执行浅复制的所有操作,还将引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。等于是不用重新初始化对象,而是动态的获得对象运行时的状态。

2024-06-27 17:46:27 187

原创 设计模式之模板模式

自己项目的一个回忆:接下来就可以看看在线固化下料处,有两个上下层几乎一样的流程,所以我们可以选择写一个总流程的父类,上下层继承父类,来避免重复代码。将需要更改的参数通过子类继承的时候赋值进去即可。模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。当我们要完成在某一细节层次都一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。

2024-06-27 17:25:46 149

原创 设计模式之代理模式

1、远程代理:为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。(在应用程序的项目中加入一个Web引用,引用一个WebService,此时会在项目中生成一个WebReference的文件夹和一些文件,其实他们就是代理,这就使得客户端程序调用代理模式就可以解决远程访问的问题)2、虚拟代理:根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。用户------>代理------->对象。客户----->代购------->香港。大概就是这么个意思。

2024-06-27 17:13:51 201

原创 设计模式之策略模式

理解:以算法来举例,比如商场的各种促销算法,不管是正常售价,还是打折售价,还是满减,最后都是输出一个收费结果。(但是,这个子类的构造可以添加参数,根据不同的促销模式,增加不同的参数需求)。利用简单工厂模式加策略模式结合,建立一个分割类,此类构造函数接收客户端的变化,根据变化反馈不同的算法类,此类有一个开放的获取结果的方法,这个方法封装变化,不管是哪一种的促销方式,此方法均同意返回计算结果。在客户端,只需要认识一个类,而简单工厂模式却是需要客户端认识两个类的。

2024-06-27 16:55:30 445

原创 设计模式之工厂方法模式

工厂方法模式,不仅有对象的父类,还有一个工厂模式的父类,所有生产工厂均继承该父类,让子类工厂决定实例化哪一个对象类,工厂方法使一个类的实例化延迟到子类工厂,在上层使用得时候,只需要更改工厂对象即可,其他实现的代码都不需要更改,这样就完全符合封闭开放原则。简单工厂模式,是建立一个父类,由很多想似的子类继承该父类,有一个简单工厂类,负责生产对应的子类对象,使得客户端可以不用去考虑需要返回的是哪个子类对象。工厂方法模式是建立在简单工厂模式之上。

2024-06-27 16:34:47 124

原创 设计模式之简单工厂

个人总结:简单工厂就是为了解耦合,当使用者需要新增一个方法的时候,只需要同样继承父类,实现父类的一些虚方法即可。这样就可保证,原来已经写好的类不用再次更改,只需要新增,这样大大减低风险。

2024-06-27 09:58:25 165

原创 C# 线程同步的几种方法

互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它,互斥锁可适用于一个共享资源每次只能被一个线程访问的情况,如果线程获取互斥体,则需要获取该互斥体的第二个线程将挂起,直到第一个线程释放该互斥体。如上图所示,有四个任务,每个任务里面做各自的事情,当有一个屏障发出信号后就会开始等待,等待到4个全部到达,就会解除等待,同时进行下一步。自旋锁是指当一个线程在获取锁对象的时候,如果锁已经被其它线程获取,那么这个线程将会循环等待,不断的去获取锁,直到获取到了锁。否则,返回false。

2024-06-25 17:06:26 1072

原创 C#覆写基类方法:Tostring()

1、覆写ToString基类方法举例:这个方法理解的重点在于:当我们覆写ToString()方法时,这个方法就变成了该类的一个相当于普通的方法了。调用的时候也是用类的对象.ToString();

2024-06-25 15:30:03 194

原创 C#反射获取属性的实例:

案例一:以下是实体类:以下是获取属性的方法:以下是使用的案例: 显示的结果:案例二:以下是抽象父类: 以下是继承的子类: 以下是使用:写在方法中就行。 展示结果:

2024-06-25 15:26:59 108

原创 C#调用C++DLL笔记:

不是方法绑定,应该称为映射,把C++的方法映射到这个方法。

2024-06-25 15:14:41 65

原创 C#IO写入等系统写法收集:

WPF自己写代码测试:收集的写法:验证了完整的获取路径,创建文件夹,创建文件:写入文件:读取文件:

2024-06-25 15:09:27 199

原创 C#Binding使用总结,含有哪些功能(非具体细节实现)

源数据是一个继承了InotifyChanged接口的一个类,这个类会暴露一些属性数据,这些属性的SET方法里添加的是当数据变化时将通知UI 源数据是UI界面另一个控件的某个值 源数据是XML文件,但是注意使用的不是path,而是Xpath;当Xpath=@ID出现此种写法,@意味着路径是XML的属性,不加@表示的是子级元素 有特意讲ListBox和ListView绑定的具体使用 XML数据可以在文件中体现,也可以在XAML中写,但是需要注意,如果把XMLDataProvider写在XAML中,那么它

2024-06-25 14:52:51 413

转载 不同版本的Newtonsoft.Json的解决方案

如果同一项目中不同第三方类库分别使用了不同版本的Newtonsoft.Json的情况下,可以在配置文件中添加以下节点,将0.0.0.0-9.0.0.0此区间的Newtonsoft.Json使用全部强制指向到8.0.0.0版本。此方案适用于高版本的Newtonsoft.Json向下兼容! ...

2020-10-16 09:05:25 973

原创 谨慎使用Encoding.Default

在处理文本时,经常需要处理Encoding的概念。存在这个问题的原因在于,在.NET程序内文本只是string和char对象,而保存到硬盘时,或者准备用socket把它发送出去时,都得先转换成byte[]或者字节流。而转换的算法,就是Encoding。Encoding不同文本文件的行数也不同。老外的程序里面,都喜欢用Encoding.ASCII,这是因为他们主要只使用western字符;于是我们经常要在他们的代码把Encoding.ASCII替换成Encoding.Default才能使用。所谓Encod

2020-09-18 13:35:59 2480

转载 c#读写ANSI格式文件,解决中乱码问题最简单的写法

以前都是用UTF-8解决,一直没有关心ANSI格式下,解决乱码问题的办法. 这个其实也很简单:读文件StreamReader sr = new StreamReader(“yourFilePath”, Encoding.Default);string strBody = sr.ReadToEnd();sr.Close();写文件StreamWriter sw = new StreamWriter(“yourFilePath”, false, Encoding.Default);sw.Write

2020-09-18 10:24:24 1894

原创 C#资源释放理解

首先,我们需要明确2个概念。第一个就是很多人用.Net写程序,会谈到托管这个概念。那么.Net所指的资源托管到底是什么意思,是相对于所有资源,还是只限于某一方面资源?很多人对此不是很了解,其实.Net所指的托管只是针对内存这一个方面,并不是对于所有的资源;因此对于Stream,数据库的连接,GDI+的相关对象,还有Com对象等等,这些资源并不是受到.Net管理而统称为非托管资源。而对于内存的释放和回收,系统提供了GC-Garbage Collector,而至于其他资源则需要手动进行释放。那么第二个概念就

2020-08-07 14:01:32 307

原创 Eplan截图笔记

2020-03-13 22:41:22 414

原创 20200313C#随手截图笔记

方法与构造方法:

2020-03-13 22:39:09 104

原创 C#接口笔记

接口的关键字:interface接口的比喻:接口就像是电脑的PCIE卡槽,只提供对应的接口,具体的实现内容是没有,而外部若想电脑能读取,就必须能匹配这个接口。为什么要用接口:某个方法或者类要被不同的类实现很多次的时候,此时接口的利用性就会很高。接口的步骤:1.声明接口:interface IIfc1 //接口名必须由大写I开始{ void PrintOut(string s)...

2020-03-07 23:21:51 155

原创 开始记录

今天开始,要将要记住的内容记到这个博客上,呼呼

2020-03-05 09:10:07 97

KEPServerEX-6.5.829.0安装包

KEPServerEX,每天可使用时长为2小时,文件包含软件初步使用文档,亲测可用

2024-05-17

C#学习笔记.docx

学习时自己做的笔记,方便自己学习也分享给大家,做好笔记对于学习是有很大的帮助,在研究的过程中很辛苦,也可能到处碰壁,但是做好笔记的话就可以减少下次研究的时间,加快我们的速度。

2020-04-12

空空如也

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

TA关注的人

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