摘要: 这节讲一下享元模式(Flyweight Pattern)。 在设计一个程序的时候,有时候我们会遇到构建大量重复实例的问题,比如一个五子棋游戏,每一个棋子都是一个对象,它们占据了很大的资源,但是这些对象实际上内部的差别很小,这种情况就催生了享元模式的形成。 享元(Flyweight)模式的定义:运用共 阅读全文
posted @ 2020-12-27 13:38 宿春磊Charles 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 这节接着讲设计模式:外观模式(Facade Pattern)。 当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这 阅读全文
posted @ 2020-12-05 16:47 宿春磊Charles 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 这节聊聊如何使用VisualStudio进行断点调试。 在debug过程中,我们有时需要查看程序在运行到某一行代码时,上下文中的变量或者一些其他的数据是什么样的,我们就要设置断点(Breakpoint)。断点顾名思义,就是运行到打断点的这一行,程序就中断,暂停。下面就看看如何使用VisualStud 阅读全文
posted @ 2020-11-15 19:54 宿春磊Charles 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 这节讲C#中的运算符重载。 方法有重载,运算符也有重载,设想一下,我们用加号计算int类型的数据,返回的也是int类型,这很正常,因为在数学中加号就是用来计算数字的。但是当我们用加号计算两个string类型的数据时,给我们返回的则是两个string数据连接在一起,难道加号应用于不同的场景,编译器就会 阅读全文
posted @ 2020-11-11 16:10 宿春磊Charles 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 这节讲桥接模式(Bridge Pattern)。 在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩 阅读全文
posted @ 2020-11-10 19:57 宿春磊Charles 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 文章代码如下: class Program { static void Main (string[] args) { //连接数据库 string connString = "server=.;database=Student;user id=sa;pwd=123456"; Console.Writ 阅读全文
posted @ 2020-10-27 15:09 宿春磊Charles 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 这节接着讲用C#进行数据库CRUD,高级部分。 事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改。C#提供了SqlTransaction类来处理数据库事务,下面通过一个示例方法来看一下这个类如何使用: using(SqlConne 阅读全文
posted @ 2020-10-27 15:07 宿春磊Charles 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 这节讲一下如何使用C#进行数据库的增删改查操作,本节以SQL Server数据库为例。 .NET 平台,使用ADO.NET 作为与数据库服务器的桥梁,我们通过ADO.NET就可以使用C#语言操作数据库,它的命名空间在System.Data下,要访问SQL Server数据库,就要引用其下的Syste 阅读全文
posted @ 2020-10-24 17:09 宿春磊Charles 阅读(481) 评论(0) 推荐(1) 编辑
摘要: 接着讲设计模式,这节讲适配器模式(Adapter Pattern)。 在现实生活中,使用直流电的笔记本需要电源适配器才能安全接入交流电,不同语言之间的交流需要翻译官来做翻译,在程序中,我们也会遇到这种需要借助第三方进行适配的情景:当需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当 阅读全文
posted @ 2020-10-24 10:38 宿春磊Charles 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 这节讲三个小知识:索引器、ref、out。 索引器: 在一个类中,我们可以定义一个索引器,它可以让我们在外部像访问数组元素一样访问类的属性成员。 索引器的定义就像定义属性一样,只不过名称为this,后边接一个中括号声明索引类型,下面看示例代码: class MyIndexer { private i 阅读全文
posted @ 2020-10-22 17:20 宿春磊Charles 阅读(157) 评论(0) 推荐(0) 编辑