C#
文章平均质量分 79
运妙心藏
C/Cpp/Java/C#/Lua/PHP/Android/Python 程序員 手游 前端 后台
展开
-
C#里partial关键字的作用(转摘)
1. 什么是局部类型?C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。局部类型适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(3) 需要多人合作编写一个类。局部类型是一个纯转载 2017-05-05 16:02:40 · 247 阅读 · 0 评论 -
C#设计模式之:模板方法模式
模板方法模式(TemplateMethod):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。UML代码abstract class AbstractClass{ public abstract void PrimitiveOperation1(); public abstr...原创 2018-09-10 14:59:45 · 534 阅读 · 0 评论 -
C#设计模式之:迪米特法则(Lod)
迪米特法则(Lod):如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。该法则强调的是,每一个类都应当尽量降低成员的访问权限其根本思想是:强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。...原创 2018-09-10 15:10:27 · 543 阅读 · 0 评论 -
C#设计模式之:外观模式
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用UML代码class SubSystemOne{ public void Method() { Console.WriteLine("子系统方法一"); }}class SubSystemTwo{...原创 2018-09-10 16:30:17 · 307 阅读 · 0 评论 -
C#设计模式之:代理模式
情景描述:小A通过小B追求小C 其中小B是代理无代理小B时,小A亲自送东西给小C 代码class A{ C c; public A(C c) { this.c = c; } public void GiveDolls() { Console.WriteLine(c.Name + ",送你洋娃娃...原创 2018-09-07 13:59:43 · 452 阅读 · 0 评论 -
C#设计模式之:工厂方法模式
工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类回顾之前简单工厂 简单工厂的核心代码class OperationFactory{ public static Operation createOperate(string operate) { Operatio...原创 2018-09-07 15:33:37 · 647 阅读 · 0 评论 -
C#设计模式之:抽象工厂模式与反射
复习工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类UML代码class User{ private int _id; public int Id { get => _id; set => _id = value; } private string _name; public string Name { ge...原创 2018-09-13 14:33:18 · 1076 阅读 · 0 评论 -
C#设计模式之:状态模式(State)
状态模式State 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以复杂的判断逻辑简化。UML代码abstract class State{ public abstract void Handle...原创 2018-09-13 17:05:45 · 2430 阅读 · 0 评论 -
C#设计模式之:适配器模式
适配器模式(Adapter) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器有两种:1,类适配器模式通过多重继承对一个接口与另一个接口进行匹配2,对象适配器模式UML 代码class Target{ public virtual void Request...原创 2018-09-14 14:54:57 · 245 阅读 · 0 评论 -
C#设计模式之:桥接模式
桥接模式Bridge将抽象部分与它的实现部分分离,使它们都可以独立地变化。由于实现的方式有很多种,桥接模式的核心意图就是把这些实现独立出来,让它们各自地变化。这就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。UML代码abstract class Implementor{ public abstract void Operation();}class...原创 2018-09-19 16:25:21 · 351 阅读 · 0 评论 -
C#设计模式之:命令模式
命令模式Command将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。UML代码abstract class Command{ protected Receiver receiver; protected Command(Receiver receiver) { this.rece...原创 2018-09-19 16:44:42 · 634 阅读 · 0 评论 -
C#设计模式之:原型模式
原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。UML 代码abstract class Prototype{ private string id; public Prototype(string id) { ...原创 2018-09-10 14:42:31 · 884 阅读 · 0 评论 -
C#设计模式之:组合模式
组合模式Composite将对象组合成树形结构以表示 ’部分-整体‘ 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。UML代码abstract class Component{ protected string name; public Component(string name) { this.name = ...原创 2018-09-17 15:39:18 · 990 阅读 · 0 评论 -
C#中ListView添加标题,行,及获取选中的行中内容
// 添加ListView表头标题this.lvStation.Columns.Add("序号", 40, HorizontalAlignment.Left); //添加标题this.lvStation.Columns.Add("编号", 50, HorizontalAlignment.Left); this.lvStation.Columns.Add("车站", 100, Horiz原创 2017-10-24 17:14:35 · 6321 阅读 · 0 评论 -
C# 字节数组截取
C# 字节数组截取 byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };如果截取2位、4位或者8位长度的字节数组,可以分别用 BitConverter.ToInt16、BitConverter.ToInt32、BitConverter.ToInt64截取,例如,从第3位开始截取4个字节则 BitConv原创 2018-01-16 20:33:02 · 8243 阅读 · 0 评论 -
C# 常见的字节数组 byte[] 复制方法
C# 常见的字节数组 byte[] 复制方法byte[] src ={1,2,3,4,5};byte[] dest = new byte[src.Length];for(int i=0; i){ dest[i] = src[i]} 1 byte[] src ={1,2,3,4,5};2 byte[] dest = new byte[src.Length];3 Array.Cop原创 2018-01-18 16:58:36 · 4515 阅读 · 0 评论 -
C#设计模式之:建造者模式
建造者模式(Builder)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示它主要用于创建一些复杂对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。它使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。UML CODE...原创 2018-09-11 11:24:51 · 389 阅读 · 0 评论 -
C#设计模式之:观察者模式与委托
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。UMLCODEabstract class Observer{ public abstract void Update();}abstract class Subject{ privat...原创 2018-09-11 16:20:02 · 1156 阅读 · 0 评论 -
C#设计模式之:简单工厂
请用C#面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。面向过程:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace PatternTest{ cla...原创 2018-09-05 16:07:10 · 286 阅读 · 0 评论 -
C#设计模式之:策略模式
需求:做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。 额外需求1:打折(8折,7折,5折不等) 额外需求2:返现(满300返100,满200返50等)使用简单工厂实现UML类图代码namespace PatternTest.Strategy{ abstract class CashSuper { public...原创 2018-09-06 14:45:42 · 314 阅读 · 0 评论 -
C#设计模式之:设计原则
1,单一职责原则(SRP):就一个类而言, 应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。2,开放-封闭原则对于扩展是开放的,对于更改是封闭的3,依赖倒置原则 与 里氏替换原则依赖倒置原则 抽象不应该依赖细节,细节应...原创 2018-09-06 15:29:40 · 361 阅读 · 0 评论 -
C#设计模式之:装饰模式
装饰模式(Decorator): 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生在子类更为灵活UML类图 Component 是定义一个对象接口,可以给这些对象动态地添加职责 ConcreteComponent是定义一个具体对象,也可以给这个对象添加一些职责 Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功...原创 2018-09-06 17:20:18 · 342 阅读 · 0 评论 -
C#设计模式之:备忘录模式
备忘录模式(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态UML代码class Memento{ private string state; public Memento(string state) { this.state = state;...原创 2018-09-17 13:51:34 · 700 阅读 · 3 评论 -
C#设计模式之:职责链模式
职责链模式(Chain Of Responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。UML代码abstract class Handler{ protected Handler successor; public void SetSuccessor(...原创 2018-09-20 10:59:02 · 383 阅读 · 0 评论