
✨C#
C#的基本用法
mmm_777
这个作者很懒,什么都没留下…
展开
-
外观模式
什么是外观模式呢?官方解释:为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。自我理解:...原创 2019-05-11 09:24:54 · 165 阅读 · 2 评论 -
代理模式
什么是代理模式?为其他对象提供一种代理以控制对其他对象的访问。自己理解起来就是,你不想做某件事情,然后你让别人替你做这件事情了。其实就是客户端和目标对象之间的中介。代理模式的优缺点优点:1、将代理对象和真实被调用的目标对象分离2、降低了系统的耦合度,扩展性好3、保护目标对象4、增强目标对象缺点:1、类的数目增加2、客户端和目标对象增加一代理对象,会造成请求速度变慢3、系统更...原创 2019-05-04 11:25:32 · 180 阅读 · 7 评论 -
装饰模式
什么是装饰模式?动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。其实是对已经存在的某些类,动态地将功能附加到对象上面。什么时候使用装饰模式呢?1、需要扩展一个类的功能,或者给一个类附加职责。2、需要动态的给一个对象添加功能,但是这些功能可以动态的撤销3、需要增加由一些基本功能的排列组合而产生的非常大量的功能4、不能采用子类扩充功能的时候。装饰模式的优...原创 2019-05-04 09:04:42 · 237 阅读 · 10 评论 -
适配器模式
什么是适配器模式呢?将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。其实简单来说就是给两个无法结合的类用一个适配器让其结合起来。① 生活中的适配器:我们用扩展屏的时候,电脑是HTML接口的,而显示屏是VGA接口的那么就需要用到适配器了。② 软件开发中的适配器:当系统数据和行为都正确,但是接口不符时,我们就考虑用适配器,目...原创 2019-05-01 20:29:02 · 303 阅读 · 6 评论 -
原型模式
什么是原型模式呢?原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建出新的对象。其实就是有一个原型接口,然后你在复制这些原型,把不同的地方改掉。创建新对象,直接用new就可以了,为什么要使用原型模式?因为用new创建的新对象不能获得当前对象的运行状态,而且就算把当前对象的状态赋值给新对象,也没有原型模式的效率高。什么时候使用原型模式呢? 1、当一个系统应该独立于它的产品创建...原创 2019-04-30 19:47:46 · 208 阅读 · 5 评论 -
建造者模式
什么是建造者模式呢?将一个复杂的对象的构建与它的表示分离,使得构建过程可以创建不同的表示。其实就是用户只要指定产品的类型就可以得到产品。建造者模式的成员都有什么呢?① builder:抽象建造者,确定产品的组成部分,为产品对象的各个部件提供抽象接口② ConcreteBuilder:具体建造者,实现抽象建造者的提供的接口,明确所创建的表示,提供检索产品的一个接口③ Director:指...原创 2019-04-30 08:34:29 · 192 阅读 · 11 评论 -
单例模式
什么是单例模式保证一个类仅有一个实例,并提供一个访问他的全局访问点其实就是限制类的实例,不让其实例化多个对象。最好的办法就是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且他提供一个访问该实例的方法。为什么要有单例模式?来说一下打印机吧。每台计算机可以有若干个打印机如果只有一个待打印的文件...原创 2019-04-28 10:50:02 · 180 阅读 · 12 评论 -
抽象工厂模式下
上一篇博客讲到如果使用抽象工厂,那么我们在增加一类产品,会添加很多类,那我们解决这个问题可以采用简单工厂模式,但是简单工厂模式case语句也需要一直更改和识别,那么我们使用一个新的方法——反射其实我们只需要将客户端和工厂部分的代码重写即可。那么什么是反射呢Reflection——反射。这个其实是.net中获取运行时类型信息的方式。也就是你可以利用函数或者其他的发问,然后对方会反射给你一个信息...原创 2019-04-26 11:04:44 · 200 阅读 · 12 评论 -
抽象工厂模式(工厂三兄弟)上
什么是抽象工厂模式呢?提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。其实这么说大家肯定不太懂。我们来结合简单工厂模式、工厂方法模式一起来说一下吧那么我们先来创建一个工厂(1)、简单工厂模式:我们现在有一个卖手机的工厂,他的产品主要有智能手机和老人机。那么我们先按照简单工厂模式来创建这个工厂。这个阶段将客户端和业务分开。① 先来看看这个工厂的类图:② 代码部分:产...原创 2019-04-25 16:16:19 · 203 阅读 · 15 评论 -
工厂方法模式
我们先来建立一个工厂这个工厂叫做牛奶工厂,其中工厂主要就是制作奶制品的,分为4个种产品分别是:液态奶、酸奶、奶粉、冷饮。原创 2019-04-24 16:46:07 · 216 阅读 · 15 评论 -
设计模式的六大原则
那么设计模式有那几个原则呢?单一职责模式开放-封闭原则依赖倒转原则里式代换原则迪米特法原则合成/聚合复用原则原创 2019-04-23 21:01:20 · 193 阅读 · 14 评论 -
简单工厂模式
什么是简单工厂模式呢?简单工厂模式属于创建型模式,也叫作静态工厂模式。但是不属于23个设计模式之一。简单工厂模式是有一个工厂类决定这个工厂生产什么产品类的实例。是不同工厂的特殊实现。那么这个工厂都有什么人呢?我先来建立一个工厂,叫做判断吃饭时间工厂。就是根据你吃的饭来判断你吃饭的时间。如果是粥,就是早饭,如果是米饭,那么就是午饭,如果是面条,那么就是晚饭。① 工厂角色:是简单工厂的核心,负...原创 2019-04-17 16:12:57 · 224 阅读 · 11 评论 -
SqlConnection类和SqlCommand类
SqlConnection类——表示一个到SQL Server数据库的打开连接常用属性:① ConnectionString:获取或设置用于打开 SQL Server 数据库的字符串。三层涉及到的例子:SqlConnection conn = new SqlConnection(DbUtil.ConnString)//实例化一个数据库打开连接的对象cnn② ConnectionTime...原创 2019-05-22 19:18:35 · 1519 阅读 · 17 评论 -
SqlDataReader类和Parameters的Add方法
SqlDataReader类简介:提供了顺序的、只读的方式读取Command对象获得的数据结果集。因为是以顺序的方式连续地读取数据,所以DataReader会以独占的方式打开数据库连接因为只是读操作,每次只在内存缓冲区里存储结果集的一条数据,所以效率比较高,如果查询大量数据,而且不需要同时修改,用这个比较好常用属性① FieldCount:表示记录有多少字段② HasRows:表示Dat...原创 2019-05-22 19:04:53 · 620 阅读 · 14 评论 -
WPF——用户控件、自定义控件之组合查询
什么是用户控件和自定义控件用户控件:简单来说就是可以把WPF的控件将多个组合到一起弄成一个控件。当然可以写代码了。也可以给这个组合而成的控件加方法和字段。特点:不能使用样式和模板,继承UserControl类。但是这个控件组的里面的控件的值得获取和属性的改变都需要自己编写好。自定义控件:(没有尝试过,参考网上)可以在现有的控件上面进行扩展,增加新的属性和方法。有一个代码文件和一个默认的主...原创 2019-07-28 16:54:39 · 1628 阅读 · 1 评论 -
WPF常见的两种定时器
没有Timer的WPF的常见两种定时器原创 2019-07-21 21:32:33 · 14272 阅读 · 2 评论 -
WPF窗体——(遍历窗体中的控件判空及清空文本)
第一步:将每个窗体当中的网格布局控件——Grid命名<Grid Name="grid"></Grid>第二步:在UI层,添加清空的类,以及判空的类第三步:在两个类里面添加命名空间这两个引用是为了使用Grid和UIElement,Grid是wpf窗体中的网格布局控件,UIElement是WPF的基类,我也不是很明白,我当中就是wpf里面的控件using Syst...原创 2019-07-04 18:11:03 · 1289 阅读 · 0 评论 -
C#基础—(字符串转换成数字 、continue 、三元表达式 、结构、变量/常量/枚举 、int类型与枚举值之间的转换 、结构声明)
目录1、字符串转换成数字2、continue3、三元表达式4、结构:5、变量/常量/枚举6、int类型与枚举值之间的转换7、结构声明1、字符串转换成数字三种方法:① convert.ToInt32(string)函数:输入字母会报错② int.Parse(string)函数:输入字母会报错③ int.TryParse(string s,out ...原创 2019-03-16 16:33:36 · 467 阅读 · 10 评论 -
C#基础—(数组的声明方式 、冒泡排序 、try-catch的使用 、方法(函数)介绍 、方法类型)
目录1、数组的声明方式2、冒泡排序3、try-catch的使用4、方法(函数)介绍5、方法类型1、数组的声明方式一共四种int[] nums = new int[10];//只限定了个数int[] nums1 = new int[] { 1, 2, 3, 4, 5 }; //此数组只能存5个值int[] nums2 = new int[3] ...原创 2019-03-16 17:16:16 · 364 阅读 · 16 评论 -
C#基础——(变量的作用域 、方法重载 、有多个返回值的方法 、有多个参数的方法 、可变数组)
目录1、变量的作用域——局部变量2、方法的重载3、有多个返回值的方法4、有多个参数的方法5、可变数组——params数组1、变量的作用域——局部变量从方法中定义的变量称为局部变量,作用域是从定义开始,到这个方法的结束例子如下所示:方法Test里面的a会报错,因为这里的a不存在,而在上面的主函数中定义的a是局部变量,不能再test方法中使用static v...原创 2019-03-21 18:54:07 · 465 阅读 · 16 评论 -
C#基础——(类和对象、构造函数、析够函数)
1、类和对象① 类:类是一个模子,确定对象将会拥有的特征(属性)和行为(方法)。类的三大特征:封装性、继承性、多态性。类的定义:[访问修饰符] class 类名{成员}其中的访问修饰符:private:私有成员,在类的内部才可以访问protected:保护成员,在类内部和继承类中可以访问public:公共成员,完全公开,没有访问限制internal:...原创 2019-03-21 20:56:48 · 909 阅读 · 22 评论 -
C#基础——(飞行棋上)
目录1、什么是飞行棋呢?2、整体步骤3、 游戏头显示4、玩家信息录入5、地图显示1、什么是飞行棋呢?2个玩家之间掷筛子然后走路,先到达终点的玩家赢,中间设置了4种特别的点:① 幸运轮盘——◎:选择交换位置还是让对方玩家回到原点② 地雷——☆:退6格③ 暂停——▲:停一次④ 时空隧道——卐:前进10格2、整体步骤3、 游戏头显示...原创 2019-03-25 19:50:15 · 1129 阅读 · 26 评论 -
C#基础——(飞行棋下)
上一篇博客已经说到了信息录入后,初始地图的显示。下面就是开始游戏后的了。1、掷筛子过程流程图2、通过上面的流程图,可以写出2个方法(1)方法6:判断是否在地图上,如果不在更改下标,使其玩家在地图上public static void CheckPos()//判断玩家的坐标范围,超过99让其等于99,小于0,让其等于0{ if (PlayeraPos[0]>99...原创 2019-03-26 10:42:52 · 577 阅读 · 25 评论 -
C#基础——(字符串的使用)
1、字符串与字符数组之间的切换 public static void CheckPos()//判断玩家的坐标范围,超过99让其等于99,小于0,让其等于0{ if (PlayeraPos[0]>99) { PlayeraPos[0] = 99; } if (PlayeraPos[1] > 99) { Playe...原创 2019-03-31 21:19:05 · 257 阅读 · 3 评论 -
C#基础——(值类型与引用类型)
1、值类型值类型就是直接将内存存储在栈内,由系统自动释放资源的数据类型。也就是说直接存储值2、引用类型由类型的实际值引用表示的数据类型。就是说引用类型存储对值的引用3、哪些是值类型,哪些是引用类型呢?4、引用类型与值类型的区别(1) 值存放位置的区别值类型的值存放在栈上引用类型的值存放在堆上,将地址存在放栈上那么存放的位置不同会产生什么结果呢?我们来举个例子。就以结构代表值类型...原创 2019-04-02 09:47:33 · 398 阅读 · 10 评论 -
C#基础——(抽象类,接口,普通类之间的区别)
什么是抽象类、接口、普通类呢?抽象类:在编程语句中,把用abstract关键字修饰的类称为抽象类。抽象类是不完整的,只能作为基类。一般用来进行类型隐藏和充当全局变量的角色。abstract class Animal{ public abstract string GetShout();}接口:声明时用interface关键字,将隐式公共方法和属性结合起来,以封装特定功能的一个集合。...原创 2019-05-15 15:58:00 · 3474 阅读 · 11 评论 -
C#基础——(==和equals的区别)
这两个的作用是什么呢?其实就是为了判断两个变量或者对象等是否相等或相同。那么什么时候==和equals是相同的呢?对于值类型来说,这两个都是来判断值是否相同。值类型和引用类型的区别那么什么时候==和equals是不同的呢? 对于引用类型来说,==判断是时引用地址是否相同(是否执行同一个堆中地址),equals判断的是是否是对一个对象的引用(堆里面的内容是否相同)例子1:拿引用类型st...原创 2019-06-02 21:29:44 · 631 阅读 · 1 评论