• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
天空の纸飞机
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

03 2018 档案

 
结构型---代理模式扩展
摘要:普通代理:就是我们要知道嗲了的存在,然和才能访问;它要求就是客户端只能访问代理角色,而不能访问真实角色,这是比较简单的。 具体代码: namespace ConsoleApplication1 { /// <summary> /// 游戏者接口 /// </summary> public inter 阅读全文
posted @ 2018-03-31 23:08 天空の纸飞机
结构型---代理模式(Proxy Pattern)
摘要:代理模式的详细介绍 代理模式按照使用目的可以分为以下几种: 远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是本电脑中,也可以在另一台电脑中。最典型的例子就是——客户端调用Web服务或WCF服务。 虚拟(Virtual)代理:根据需要创建一个资源消 阅读全文
posted @ 2018-03-31 23:00 天空の纸飞机
创作型---抽象工厂模式
摘要:抽象工厂详细介绍 具体代码: namespace ConsoleApplication1 { /// <summary> /// 抽象产品A类 /// </summary> public abstract class AbstractProductA { //每个产品共有的方法 public voi 阅读全文
posted @ 2018-03-31 22:49 天空の纸飞机
创作型---工厂方法模式
摘要:工厂方法模式 从UML图可以看出,在工厂方法模式中,工厂类与具体产品类具有平行的等级结构,它们之间是一一对应的。针对UML图的解释如下: Creator类:充当抽象工厂角色,任何具体工厂都必须继承该抽象类 TomatoScrambledEggsFactory和ShreddedPorkWithPota 阅读全文
posted @ 2018-03-31 22:43 天空の纸飞机
创作型---简单工厂模式
摘要:简单工厂模式又叫静态方法模式(因为工厂类都定义了一个静态方法),由一个工厂类根据传入的参数决定创建出哪一种产品类的实例(通俗点表达:通过客户下的订单来负责烧那种菜)。简单工厂模式的UML图如下: 简单工厂的实现: namespace TempApplication { /// <summary> / 阅读全文
posted @ 2018-03-31 22:39 天空の纸飞机
创作型---建造者模式
摘要:建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式使得建造代码与表示代码的分离,可以使客户端不必知道产品内部组成的细节,从而降低了客户端与具体产品之间的耦合度,下面通过类图来帮助大家更好地理清建造者模式中类之间的关系。 阅读全文
posted @ 2018-03-31 22:28 天空の纸飞机
创作型---原型模式(C# ICloneable接口的实现)
摘要:在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,可以通过对原来对象拷贝一份来完成创建,这样在内存中不需要创建多个相同的类实例,从而减少内存的消耗和达到类实例的复用。 然而这个思路正是原型模式的实现方式。下面就具体介绍下设计模式中的原型设计模式。 代码: pu 阅读全文
posted @ 2018-03-31 22:14 天空の纸飞机
创作型---单例模式
摘要:定义 单例模式也就是保证一个类只有一个实例的一种实现方法罢了(设计模式其实就是帮助我们解决实际开发过程中的方法, 该方法是为了降低对象之间的耦合度,然而解决方法有很多种,所以前人就总结了一些常用的解决方法为书籍,从而把这本书就称为设计模式),下面给出单例模式的一个官方定义:确保一个类只有一个实例,并 阅读全文
posted @ 2018-03-31 22:05 天空の纸飞机
可选参数与命名参数
摘要:另外再补充两个C# 4.0的新特性可选参数与命名参数: 1、可选参数 可选参数,顾名思义,它不是必需的。对于一般的参数,如果不为它指定值,可能会导出运行出错。但是可选参数不会。 可选参数的规则: 1、可选参数不能为参数列表第一个参数,它必须位于所有必选参数之后; 2、可选参数必须指定一个默认值; 3 阅读全文
posted @ 2018-03-31 18:26 天空の纸飞机
迭代器
摘要:在C# 1.0中我们经常使用foreach来遍历一个集合中的元素,然而一个类型要能够使用foreach关键字来对其进行遍历必须实现IEnumerable或IEnumerable<T>接口,(之所以来必须要实现IEnumerable这个接口,是因为foreach是迭代语句,要使用foreach必须要有 阅读全文
posted @ 2018-03-31 18:24 天空の纸飞机
位操作
摘要:位操作符是对数据按二进制位进行运算的操作符。位操作是其他很多语言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的数据类型是基本数据类型,如byte、short、char、int、long等,C#支持的位操作有如下几种:· 按位与 & · 按位或 | · 按位取反 ~  阅读全文
posted @ 2018-03-31 18:04 天空の纸飞机
匿名方法
摘要:一、概念: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace EventDemo { class Progra 阅读全文
posted @ 2018-03-31 18:02 天空の纸飞机
接口和抽象类
摘要:什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口 阅读全文
posted @ 2018-03-31 18:00 天空の纸飞机
接口的用途
摘要:C#接口有三种用途: public interface IChargeable { } public class MyCharge : IChargeable { } public class ChargeFacility<TChargeable> where TChargeable : IChar 阅读全文
posted @ 2018-03-31 17:59 天空の纸飞机
弱引用(WeakReference)
摘要:在应用程序代码内实例化一个类或结构时,只要有代码引用它,就会形成强引用.这意味着垃圾回收器不会清理这样的对象使用的内存.但是如果当这个对象很大,并且不经常访问时,此时可以创建对象的弱引用,弱引用允许创建和使用对象,但是垃圾回收器 运行时,就会回收对象并释放内存. 弱引用是使用WeakReferenc 阅读全文
posted @ 2018-03-31 17:55 天空の纸飞机
对象复制
摘要:浅度复制(MemberwiseClone) 演示代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EventDemo { public class R 阅读全文
posted @ 2018-03-30 22:20 天空の纸飞机
is和as
摘要:在.NET中,一切类型都必须集成自System.Object类型,因此我们可以很容易的获得对象的准确类型,方法是:GetType()方法。那么.NET中的类型转换,应该考虑的地方有那些呢? is的规则如下: 检查对象类型的兼容性,并返回结果,true或者false; 不会抛出异常; 如果对象为nul 阅读全文
posted @ 2018-03-30 22:16 天空の纸飞机
unsafe关键字
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Dynamic; using Syste 阅读全文
posted @ 2018-03-30 22:15 天空の纸飞机
using的几种用法
摘要:1、using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间 例如:using System; 一般都会出现在*.cs中。 2、using别名。using + 别名 = 包括详细命名空间信息的具体的类型 这种做法有个好处就是当同一个cs引用了 阅读全文
posted @ 2018-03-30 22:12 天空の纸飞机
C#中的Action和Func和Predicate
摘要:一、【action<>】指定那些只有输入参数,没有返回值的委托 用了Action之后呢: 就是相当于省去了定义委托的步骤了。 演示代码: using System; using System.Collections.Generic; using System.Linq; using System.T 阅读全文
posted @ 2018-03-30 21:52 天空の纸飞机
typeof() 和 GetType()区是什么
摘要:1、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。 2、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。 比如有这样一个变量i: Int32 i = new Int 阅读全文
posted @ 2018-03-30 21:46 天空の纸飞机
C#关键字的使用
摘要:params object[] 用于函数多参数的定义 public static void Write(string format, params object[] arg); explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符。 例如,在下面的示例中,此运算符将名为 阅读全文
posted @ 2018-03-30 21:45 天空の纸飞机
override与new的区别
摘要:using System; namespace ConsoleAppDemo { class BaseClass { public void Fun() { Console.WriteLine("BaseClass.Fun()"); } public virtual void VFun() { Co 阅读全文
posted @ 2018-03-30 21:38 天空の纸飞机
获取变量默认值
摘要:/// /// 获取变量默认值 /// /// /// private object DefaultForType(Type targetType) { return targetType.IsValueType ? Activator.CreateIn... 阅读全文
posted @ 2018-03-30 21:36 天空の纸飞机
分部类,分部方法 - 修饰符partial
摘要:一、分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分。 当使用自动生成的源时,无须重新创建源文件便可将代码添加到类中。Visual Studio在创建Window窗体,Web服务包装代码时都是使用此方法。 1、分部类的特征 类的定义前要加 阅读全文
posted @ 2018-03-30 21:29 天空の纸飞机
扩展方法
摘要:扩展方法可以理解为现有的类型(现有类型可以为自定义的类型和.Net 类库中的类型)扩展(添加)应该附加到该类型中的方法。 在没有扩展方法之前,如果我们想为一个已有类型自定义自己逻辑的方法时,我们必须自定义一个新的类型来继承已有类型的方式来添加方法 扩展方法必须具备下面的规则: 它必须在一个非嵌套、非 阅读全文
posted @ 2018-03-30 21:24 天空の纸飞机
异常处理 Exception
摘要:一、异常类 1、在C#中所有的异常都是使用一个异常类型的示例对象表示的,这些异常类型都是继承自System.Exception类型,或者直接使用System.Exception类型的实例对象; 2、在C#中,位于finally块中的代码可以保证不管代码是正常结束,还是进入异常处理代码块,其中的语句均 阅读全文
posted @ 2018-03-30 21:07 天空の纸飞机
throw和throw ex的区别
摘要:在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正的错误源。 throw的用法主要有以下几种: 第一种(不推荐使用),这样适用会吃掉原始异常点,重置堆栈中的异常起始点: try 阅读全文
posted @ 2018-03-30 21:03 天空の纸飞机
预处理指令关键字
摘要:#if、#else、#elif、#endif 这组指令主要用于在调试环境下代码进行条件编译时,用于控制编译器对某个代码段是否进行编译。 #define release using System; using System.Collections.Generic; using System.Linq; 阅读全文
posted @ 2018-03-19 22:30 天空の纸飞机
sealed关键字
摘要:1. sealed关键字 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。类似于Java中final关键字。 在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。2. sealed 修饰方法或属性 能够允许类从基类继承,并防止它们重写特定的虚方法或虚属性。 阅读全文
posted @ 2018-03-19 22:24 天空の纸飞机
延迟初始化Lazy
摘要:延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。 基本语法: Lazy<T> xx = new Lazy<T>();//xx代表变量名 举例实现: 首先创建一个Student类,代码如下: using System; namespace L 阅读全文
posted @ 2018-03-19 22:16 天空の纸飞机
索引器
摘要:索引器与属性的不同点: 1、每个属性的名称必须唯一,而每一个索引器的签名必须唯一。 2、索引器的“属性名”统一为this。而不能为其他,专门用于定义索引器。 3、索引器的参数列表包含在方括号而不是圆括号之内。 4、属性可以是静态的,而索引器只能为实例成员。 5、属性的get访问器没有参数,而索引器的 阅读全文
posted @ 2018-03-19 21:58 天空の纸飞机
 

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3