自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nikita

如果不想成为一个碌碌无为的人,除了对浩渺星空的无穷向往,还必须具备对平庸生活的憎恶。

  • 博客(151)
  • 收藏
  • 关注

原创 设计模式——享元模式

初识享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。举个最简单的例子,网络联机下棋的时候,一台服务器连接了多个客户端(玩家),如果我们每个棋子都要创建对象,那一盘棋可能就有上百个对象产生,玩家多点的话,因为内存空间有限,一台服务器就难以支持了,所以这里要使用享元模式,将棋子对象减少到几个实例。结构角色FlyweightFactory:一个享元工厂,用来创建并管...

2019-02-26 21:25:20 338 18

原创 设计模式——组合模式

初识组合模式(Composite),将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。结构角色:组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。叶子(Leaf):在组合中表示...

2019-02-24 20:58:01 239 28

原创 设计模式——桥接模式

初识桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。结构应用电脑品牌分为:戴尔、联想、华硕、惠普等。而操作系统又分为windows,Linux等。我们...

2019-02-23 16:25:57 209 18

原创 设计模式——外观模式

初识外观模式(Facade),为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构角色SubSystem子类,子系统类集合实现子系统的功能,处理Facade对象指派的任务。注意子类中没有Facade的任何信息,即没有对Facade对象的引用。Facade外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。...

2019-02-22 16:33:46 211 19

原创 设计模式——代理模式

初识代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。

2019-02-21 21:31:00 243 16

原创 设计模式——装饰模式

初识装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。结构角色:Component类:定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent类:定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator类:装饰抽象类,继承了Component,从外类扩展Component类的功能,...

2019-02-20 17:49:47 214 15

原创 设计模式——适配器模式

初识适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。结构由图可知适配器模式包含三个角色:1:Target(目标抽象类):目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。在类适配器中,由于C#语言不支持多重继承,所以它只能是接口。2:Adapter(适配器类):它可...

2019-02-20 13:16:09 298 18

原创 设计模式——工厂三兄弟+反射

工厂方法模式大学生与志愿者static void Main(string[] args){ IFactory factory = new UndergrauateFactory(); LeiFeng student = factory.CreateLeiFeng(); student.BuyRice(); student.Sweep()...

2019-02-16 22:39:33 309 14

原创 设计模式——六大原则

文章目录原则一:单一职责原则原则二:开放-封闭原则原则三:依赖倒转原则原则四:里氏转换原则原则五:迪米特原则原则一:单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。单一职责原则:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变...

2019-02-12 21:29:28 835 11

原创 C# GDI+、验证码

GDI+GDI+(Graphics Device Interface)是一种绘图装置接口,可将应用和绘图硬件分隔,让我们能够写与装置无关的应用程序。属于绘图方面的API,因为应用程序不能直接控制硬件,所以当我们要进行绘图的动作时,必须通过GDI完成。Graphics类常用的画图方法DrawLine():画线–两个PointDrawLines():画线段–Point数组DrawStrin...

2019-01-27 10:14:45 376 23

原创 C#-播放器

播放器界面播放器实现代码 //用来存歌曲的路径List<string> listMusicFile = new List<string>();//用来存歌词的路径List<string> listLrc = new List<string>();//用来存歌词List<string> listSongLrc = new L...

2019-01-24 10:54:36 669 18

原创 Power English-MiniStory5

学习时长这个故事一共学了25天。超出计划10天,对于超出10天,我总结了以下几点原因:放松自我约束制定计划不够严谨感受

2019-01-20 21:24:48 335 26

原创 HTML基础

htmlhtml文档就是网页。全称:Hyper Text Markup Languagehtml标签:不区分大小写,有些大写是自动生成的。页面包括:“格式标签”和“页面内容”网页文件格式:htmlhtmhtml基本标签基本结构:段落标签:空格标签:&nbsp标题标签:图片标签:注释标签:...

2019-01-20 20:41:55 277 19

原创 C# treeView控件、MessageBox控件、OpenFileDialog

treeView控件属性使用private void button1_Click(object sender, EventArgs e){ treeView1.Nodes.Add(textBox1.Text);//添加根节点 textBox1.Text = "";}private void button2_Click(object sender, EventArgs e)...

2019-01-18 16:25:15 360 7

原创 C#中一些事件以及练习

//打开网页或程序System.Diagnostics.Process.Start("Http://www.baidu.com");Form1_MouseLeave//鼠标离开窗体事件Form1_MouseEnter//鼠标在窗体内事件Form1_MouseMove//鼠标移动事件Form1_MouseDown//鼠标按下事件Form1_MouseUp//鼠标抬起事件Form1_M...

2019-01-18 16:24:45 405 9

原创 C#中异常处理、索引器、静态与实例方法区别

文章目录异常处理索引器异常处理Console.WriteLine("请输入数字");try{ int num = Convert.ToInt32(Console.ReadLine());}catch (Exception ex){ Console.WriteLine(ex.Message);//对于异常系统进行提示}Console.ReadKey();索引器...

2019-01-15 11:51:17 438 11

原创 C#中装箱拆箱、序列化、反序列化

装箱//装箱; 值类型转换为引用类型int num = 10;object obj = num;Console.WriteLine(obj);拆箱//拆箱;引用类型转换为值类型int num = 10;object obj = num;int number = (int)obj;Console.WriteLine(obj);...

2019-01-13 17:18:31 625 10

原创 C#中接口、接口与类的比较、类与成员修饰符

接口1、完全抽象的一种约定2、接口就是用来实现的,如果定义了接口,就必须使用3、接口只有方法、属性、索引、事件的声明接口练习//定义接口interface IFly{ void IFly();}class Program{ static void Main(string[] args) { IFly ifly = new Teacher...

2019-01-13 15:44:22 820 7

原创 C#中抽象方法与虚方法区别

什么时候使用抽象方法当两个或多个类中有重复部分的时候,我们可以把重复的部分抽象出来作为一个基类,如果希望这个基类不能被实例化,就可以把这个基类设计成抽象类。关于抽象方法的使用有一个简单易懂的例子,大家可以点击查看:点击查看抽象方法的使用举例抽象方法特点1、抽象方法没有方法体2、抽象方法用abstract修饰3、抽象方法必须在抽象类中4、抽象类无法实例化5、父类是抽象类,如果子类继承...

2019-01-13 10:53:03 420 6

原创 C#中方法的重写(实现多态)

前言问题1:什么时候要重写方法?当子类继承父类时,子类中方法名称与父类中方法名称重名时,需要让父类的方法变成虚方法;让子类方法进行重写。问题2:什么是重写?对原有基础上的方法需要进行改变。...

2019-01-11 16:07:17 3224 7

原创 C#中FileStream与StreamReader/StreamWriter区别

FileStreamFileStream类不是静态类,表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进...

2019-01-11 10:55:50 3266 6

原创 C#-Directory

英汉翻译string path = @"G:\桌面\英汉词典TXT格式.txt";//文化路径string[] str = File.ReadAllLines(path, Encoding.Default);//读取文件中的所有行,并放到数组strDictionary<string, string> dic = new Dictionary&amp

2019-01-10 11:42:09 577 10

原创 常见字符编码:ASCII、Unicode、UTF-8

什么是字符编码?计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。ASCII编码:...

2019-01-09 17:34:47 443 7

原创 C#-File

文章目录类:FileFile方法创建文件删除文件是否存在显示时间文件的创建、访问、写入时间移动文件路径类:File需要导入命名空间:using System.IO;File方法创建文件//在指定路径下创建一个文件,如果文件存在则覆盖该文件string path = @"G:\桌面\1.txt";File.Create(path);删除文件//删除指定路径下的文件,直接删除,...

2019-01-09 17:03:29 230 3

原创 C#-数组、ArrayList、List三者的区别

文章目录前言数组ArrayList泛型List前言在C#中,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。数组数组在C#中是最早出现的。它在内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单。可以利用偏移地址访问元素,时间复杂度为O(1);可以用折半查找法查找元素,效率高。string[] s=new string[3];//赋值s...

2019-01-08 11:45:30 388 2

原创 C#-泛型List

文章目录List添加数据List方法List练习List添加数据<>中定义什么类型,集合List就是什么类型。List<int> list = new List<int>();//int类型集合list.Add(10);List方法List<int> list = new List<int>();list.Max();/...

2019-01-08 11:24:38 283 1

原创 C#-HashTable与Dictionary、ArrayList,List,HashTable,Dictionary四者的区别与联系

哈希表哈希表以键(key)值(value)对形式存储。

2019-01-04 20:53:36 967 5

原创 C#-集合ArrayList常用用法

C#练习随机生成类,调取生成类的方法。static void Main(string[] args){ Person[] per = new Person[10];//将类放到一个数组 Random r = new Random();//随机数 for (int i = 0; i < per.Length ; i++) { int num = r.Next(1, ...

2019-01-03 21:27:02 506 8

原创 C#-继承、子类调用父类的构造函数、访问修饰符protected

继承代码示例子类继承父类的//Teacher类,Student类:Person类//子类:父类//派生类:基类public class Person//父类{ private string _name; public string Name { get { return _name; } set { _name = value; ...

2018-12-29 18:01:22 5356 9

原创 C# 里氏转换原则

里氏转换原则父类转换为子类(显示转换):case1Person p = new Person();Person p1 = new Student ();//new的是子类,调的是父类的方法,实际上调用的是父类的方法case2Person p = new Person();Student stu = (Student)p;//父类显示转换为子类:不能直接转换stu.SayHello...

2018-12-29 18:00:02 2610 5

原创 C#-读文件,结构和类区别,栈和堆区别

读文件//读取电脑中文本文档的内容,并将其中超过8个字的书名从第六个索引开始用省略号表示,+|作者string path = @"G:\桌面\book.txt";string[] text = File.ReadAllLines(path, Encoding.Default);//读取文件for (int i = 0; i < text.Length ; i++){ st...

2018-12-26 14:53:55 221 13

原创 C# 命名空间调用类、字符串

命名空间代码和被使用的类在同一命名空间,则不用using。在不同命名空间的类调用方法有两种:一、写全称:命名空间.类名_01测试.测试 test = new _01测试.测试();二、1.在解决方案中引用要调用的类的项目2、在调用项目中using引用被调用项目命名空间,例:using _01测试;3、在方法中进行调用//类名 名称=new 类名();测试 test=ne...

2018-12-23 15:05:03 3248 8

原创 C#string与stringbuilder,String的区别

string与StringBuilder区别string的缺点是每次字符串变量的内容发生了改变时,都必须重新分配内存。如果创建一个迭代100000次的循环,每次迭代都将一个字符连接到字符串,这样内存中就会有100000个字符串,每个字符串仅仅与前一个字符串相伴只是有一个字符不同,性能影响是很大的。StringBuilder通过分配一个缓存,就是一个工作区来解决这些问题,在工作区中队字符串应用St...

2018-12-23 14:58:29 1175 7

原创 Power English--MiNi Story4

学习时长12.11-12.22历时11天,比自己制定的计划15天提前完成了。学习过程像往常一样,自己跟读三四天之后,就是发挥团队学习的重要性的时候了,这个故事15min左右,我们分为了两段,一段一段的topic,每次topic明显感觉到比上一次说的内容更多了,情节更细了,对故事记忆最深刻的一定不是跟读的时候,而是topic的过程中。感受自我感觉,还有很多地方要提高。比如:跟读的时候,大多...

2018-12-22 20:29:33 267 5

原创 C#-类的实例化、访问修饰符、属性、构造函数

类的实例化类是指具有相同属性或方法的成员的集合,例如:人是一个类,而每个人又都是独一无二的,每个人都是人这个类的实例化。类的实例化 代码示例//类Person中的字段与方法public class Person{ public string _name; public char _gender; public int _age; public void ...

2018-12-19 20:37:44 1096 7

原创 VS2017如何查看类图

前言vs2017中无法查看类图是因为安装时没有安装vs扩展中的类设计器,只需跟着如下步骤安装一下即可。步骤1、打开我们的Visual Studio Installer2、点击修改3、勾选VS扩展开发,并选中类设计器,点击下方修改即可。4、待设计器安装完后,查看我们的vs即可...

2018-12-19 20:02:01 7882 8

原创 C#-骑士飞行棋

步骤1、制作游戏头2、初始化地图3、画地图4、掷骰子,开始游戏

2018-12-18 15:02:52 486 11

原创 C#-参数修饰符out/ref

参数修饰符out举例如果AddNumber方法的参数用out修饰,那么必须在调用AddNumber方法的Main方法中用out修饰参数在被调用的AddNumber方法中必须对参数赋初值,而在Main方法中可以不给参数赋初值out参数修饰符是把参数的值传到方法外面static void Main(string[] args){ int number1; int num...

2018-12-12 19:23:04 278 6

原创 C#基础(结构,随机数,结构体,枚举,数组)

2018-12-09 20:13:29 315 4

原创 冒泡排序 -C#

前言冒泡排序是一种较简单的排序算法,名字由来如同碳酸饮料的二氧化碳气泡最终会浮到顶端。越大的元素会经过交换慢慢到达数列的顶端或尾端。(升序或降序)原理(升序)比较相邻的两个元素,如果第二个数比第一个数大就换位置,...

2018-12-09 17:06:51 478 3

空空如也

空空如也

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

TA关注的人

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