![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【C#】
学习面向对象的编程思想
LM-mint
这个作者很懒,什么都没留下…
展开
-
C#机房重构-实时查看上机余额(状态模式)
状态模式 状态模式:当一个对象的状态发生改变时,允许改变其行为。当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。具体实现UI层Entity.Gloable.Time = 1;//在上机操作中赋值,判断其实时查询余额的次数(经过多少个小时) private void txtcardNo_EnabledCha...原创 2018-09-04 18:05:45 · 711 阅读 · 33 评论 -
C#机房重构-下机(策略模式)
策略模式 策略模式:定义算法家族,分别封装,让它们之间可以相互替换,此模式计算法的变化,不会影响到使用算法的客户。策略模式封装了变化,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式具体实现Context类 public class Context{ private Strategy strategy; public Context...原创 2018-08-31 18:40:58 · 471 阅读 · 25 评论 -
C#机房重构-下机(职责链模式)
下机职责链模式 职责链:当客户提交一个请求时,请求是沿着链传递,直至有一个ConcreteHandler对象负责处理,接收者和发送者都灭有对方的明确信息,且链中的对象自己也并不知道链的结构,仅需保持一个指向其后继者的引用。具体实现在机房重构中职责链主要用于确定学生的消费时间,以下为具体的实现:抽象类 public abstract class Handler//处...原创 2018-08-31 17:11:14 · 483 阅读 · 26 评论 -
C#机房重构—DataGridView使用
DataGridView 常用属性1.Anchor:Top,Button,Left,Right 定义控件绑定到容器的边缘 2.AutoSizeColumnsMode:Allcells 调整可见列自动大小模式 3.AutoSizeRowsMode:Allcells 调整可见行自动大小模式,结合2可以实现根据表格的内容自动调整大小的效果 4.ColumnHeadersDefaultC...原创 2018-08-26 16:53:12 · 431 阅读 · 27 评论 -
C#机房重构-组合查询(模板模式)
存储过程 存储过程是SQL语句和控制流语句预编译的集合。也可视为批处理,是保存在服务器上的命名批处理,系统预先对它进行编译。作为一个单元进行处理。可以通过调用存储过程来执行多条对数据库的管理和操作。在一定程度上提高了效率。具体代码如下:-- =============================================-- Author: <刘檬>-...原创 2018-08-26 17:44:49 · 423 阅读 · 26 评论 -
C#机房重构—问题汇总
一、问题汇总1.当前上下文中不存在名称“configurationManager”原因:没有引用system.configuration 解决方法: 二、无法为属性或索引器sqlconnection.state赋值,它是只读的原因:只读状态,无法赋值,但在此处作用为表达式,判断是否等于 解决方法:修改“=”为“==” if (conn.State == Connect...原创 2018-08-12 21:00:54 · 1274 阅读 · 21 评论 -
C#机房重构—七层登录
七层结构 UI:通过界面展示给用户信息,并将输入的信息传递到下一层执行操作 Entity层(实体层):构建一个对象需要实例化Entity层,这个对象可以把UI界面中的信息存储在这个对象中,通过对象进行信息传递 Facade(外观层):负责整合B层的方法,为一些共有的方法提供统一的接口,以供UI层调用(外观模式),也是对B层的抽象。 BLL(业务逻辑层):执行业务逻辑操作,需要访问数据库...原创 2018-08-01 14:29:07 · 482 阅读 · 25 评论 -
.NET—程式开发
快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + ...原创 2018-07-22 20:52:48 · 352 阅读 · 32 评论 -
三层架构
三层UI层.NET是一个框架 VB.NET是一种编程语言 2.原创 2018-07-26 20:53:35 · 2156 阅读 · 42 评论 -
.NET框架
.NET包含了一个可以省去开发过程中大量Windows API虚拟机,一个拥有更多功能的类库,一个跨越多种语言的开发环境,及一个使多种语言集成更简单,直接的体系结构。NET框架的基本思想是:把原有的重点从连接到互联网的单一网站或设备转移到计算机、设备和服务群组上,而将互联网本身作为新一代操作系统的基础。这样,用户将能够控制信息的传送方式、时间和内容,从而得到更多的服务。1.Common Langu...原创 2018-07-13 17:03:43 · 902 阅读 · 25 评论 -
C#机房重构-优化
一、基本限制 //限制只能输入汉字,正则表达式 if(!Regex.IsMatch(this.txtdepartment.Text.Trim(),"[\u4e00-\u9fa5]")&& this.txtdepartment.Text.Length >= 4) { MessageBox.原创 2018-09-23 18:35:19 · 317 阅读 · 32 评论 -
SVN简介
SVNSVN是一个版本控制系统,用于多个人共同开发同一个项目,利用共同资源。集中式的管理权限机制,可以实现分层管理。有全面的安全认证。SVN服务端设置一、创建一个版本库Repositories -create new Repositories二、权限1.创建用户 Users- Creat Users或Groups- Creat Groups,对不同的用户或团队访问不同的库(文件)设置...原创 2018-09-23 23:16:53 · 273 阅读 · 34 评论 -
C#合作-泛型集合
泛型集合机房重构中已经使用过泛型,但理解不太深刻,借着进行机房合作的机会将错过的知识再补充一下。首先清楚的理解以下的几组概念:一、集合—装箱和拆箱(ArrayList)集合,就是包含多个数据类型的类。装箱:就是把不同中类型(值类型等)打包到Object对象中。拆箱:相反,从object中强制转换为所存的数据的本来类型(值类型等)二、泛型(List)泛型,就是指没有确定的类型,编码含...原创 2018-09-25 14:27:14 · 264 阅读 · 32 评论 -
ASP.NET-六大对象
一、ApplicationApplication对象是个应用程序级的对象,在所有用户间共享信息。维护整个应用程序的一组变量,这些变量可以由所有访问该应用程序和用户共享,并可以在Web应用程序运行期间持久地保持数据。Application对象没有内置的属性,可以自行创建属性二、Session该对象用于存储在多个页面之间调用特定用户的信息三、Server...原创 2019-02-10 19:56:03 · 805 阅读 · 17 评论 -
Chart-制作饼图
<font face=楷体 size=4原创 2019-01-28 09:49:12 · 1365 阅读 · 28 评论 -
C#-制作IP地址栏
前言: 由于项目需要使用C#来制作一个IP地址栏,制作的IP地址栏使用了textBox和Label控件。界面效果:具体代码: #region ip1段限制输入1-233 private void txtip1_TextChanged(object sender, EventArgs e) { int len = txtip1.Te...原创 2018-12-31 20:09:05 · 373 阅读 · 8 评论 -
线程间操作无效:从不是创建控件“textBox1”的线程访问它
线程间操作无效:从不是创建控件“textBox1”的线程访问它问题代码: public void test(object source, ElapsedEventArgs e) { //实例化BLL层对应界面 QRcodeBLL qucode = new QRcodeBLL(); //501考场剩...原创 2019-01-05 11:26:46 · 4211 阅读 · 2 评论 -
Sql语句:时间模糊查询
前言在项目中,需要使用模糊查询来查询当天或某个时间段的信息记录,已知在数据库中使用的是datetime时间类型。方法总结:方法一(用于查询当天的某项记录,专为date类型定制的快捷的方法): string sql = "SELECT count(*) from StudentBindPaperTypeEntity where IsUse ='1' and DateDiff(day,Tim...原创 2018-12-29 19:35:37 · 3176 阅读 · 17 评论 -
VB,VB.NET,C#对比
VBVB是可视化的语言,基于面向对象的。不支持继承、重载和接口。使用的非结构化的On Error Goto和On Error Resume Next异常处理语句VB.NET和C#都是.NET平台上的编程语言,C#C#是微软公司发布的一种面向对象(将程序中的功能模块化,每个模块都是孤立的,并且提供特定的功能)的,运行于.NETFrameWork之上的 高级程序设计语言。几乎集中了所有关于软件开发和软...原创 2018-06-30 09:42:51 · 1816 阅读 · 22 评论 -
C#-异常处理
异常:程序运行期间发生错误异常对象:将程序发生的各种错误封装成对象在程序中判断如果有违逻辑的部分可以抛出一个异常,当程序抛出异常之后那么程序会自动退出或者死掉,所以在会抛出异常的部位要捕获异常并进行处理。为了捕获异常,代码放到try块中,代码运行时会尝试执行try块内的所有语句,一旦出现异常,跳出try块,进入catch处理程序中执行。在try块后紧接着一个或多个catch,每个catch处理程序...原创 2018-06-18 17:38:03 · 565 阅读 · 32 评论 -
UML-总结
前言 经过了一段时间的对UML的学习,对UML知识做一个补充。UML UML是一种建模语言,是系统建模的标准,去描述系统的需求和设计,为面向对象开发系统的产品进行说明、可视化及编程文档的一种标准语言。UML中的关系:1.泛化关系(带空心箭头的实线,箭头从子类指向父类) 对象之间耦合度最大的一张关系,子类继承父类的所有细节。2.实现关系(带空箭头的虚线) 实线关系是分类器之间的语义关系,接口...原创 2018-03-19 15:32:42 · 324 阅读 · 32 评论 -
UML—行为图
前言UML的行为图是用来描述系统的动态模型和对象之间的关系。在UML中使用活动图和状态图来描述系统的动态行为活动图活动图是一种用于描述系统行为的模型视图。它是用来描述动作和动作导致对象状态改变的结果。主要用来描述执行中的工作和动作、对象内部工作以及多线程应用活动图组成1.Activity:活动,非原子性2.初始节点:活动图具有起始节点3.终节点:活动图的终点4.分叉与结合(并发):同一时间间隔内,...原创 2018-03-18 20:09:10 · 999 阅读 · 84 评论 -
软件视频总结
一、软件工程软件工程目标:提高软件的质量与生产率,最终实现软件的工业化生产。软件工程模型:用一定的流程将各个环节连接起来,并可用规范的方式操作全过程。二、思维导图三、需求转化为软件系统1.体系结构设计 原则:普适、高效、稳定 客户机/服务器结构 层次结构2.模块设计 目的功能独立,降低开发、测试、维护 信息隐蔽:避免某个模块的行为干扰同一系统的其他模块 内聚和耦合:模块之间接口的复杂程...原创 2018-02-11 19:06:51 · 446 阅读 · 37 评论 -
软件文档总结
为什么要写软件文档? 软件开发人员需要了解用户的需求,并根据用户及开发人员一致的理解编写文档,为下一工作提供材料;参与软件开发的人员会在各个阶段以文档作为这一阶段的成果总结并且为下一阶段提供了重要的依据,方便下一个阶段工作的展开;而与此同时管理人员可以通过这些文档来了解项目的开发情况;软件文档的存在方便了软件维护人员熟悉该软件,进行维护工作。软件文档的存在提高了软件开发的效率。每个阶段文档有...原创 2018-02-12 17:25:06 · 825 阅读 · 31 评论 -
UML概述
UML是什么? UML是统一建模语言,也称为标准建模语言。是一个支持模型化和软件系统开发的图形化语言,包括由需求分析到规格、构造和配置。描述了系统的静态结构和动态行为,主要用于系统的理解、设计、浏览、维护、信息控制。UML的构成? UML主要由三部分构成: 事务:结构事务、行为事务、分组事务、标记事务 关系:描述了图示符号、事务之间的关系。包括: 关联:两个或多个类之间的结构...原创 2018-02-25 17:36:42 · 426 阅读 · 58 评论 -
UML--用例图
前言 UML是用来描述系统的整个设计的过程,而针对这个过程产生了UML9种图:用例图,类图,对象图,协作图,序列图,活动图,状态图,构件图和部署图。思维导图用例图一、简介 根据上面的导图,我们首先来介绍一下用例图,从用户的角度描述需求,希望实现的系统功能及执行者。用例图是由用例、角色和关系三部分组成。二、过程在设计过程中要注意: 1.明确功能,不需要具体的实现方法 2.明确...原创 2018-02-28 17:58:31 · 839 阅读 · 30 评论 -
浅谈面向对象思想
在计算机语言的学习过程中,经常会碰到“面向对象”“面向过程”...等等这些词汇,那真正的面向对象的思想是怎样的?如何理解?它又为什么有这么大的魅力?什么是对象与类,它们之间的区别?系统中一切事物皆为对象,不仅能表示具体的事物,还能表示抽象的规则、计划或事件在这里解释一下类和对象之间的关系:1.类是指具有相同或相似性质的对象的抽象2.类是创建对象的模板,对象是类的一个具体的实例原创 2017-10-22 15:15:01 · 477 阅读 · 54 评论 -
面向对象与面向过程
面向过程分析出解决问题所需要的步骤,然后用函数把步骤分解开,使用时再调用这些函数。面向过程强调流程化、线性化、步骤化的思考方式面向对象把构成问题事务分解成各个对象,描述各个事务在问题中的行为。强调整体性和差异性。具有抽象、封装,继承,多态区别:面向过程效率高。流程明确,具体步骤清楚。但耗费精力,代码重用率低;扩展能力差,维护困难;面向对象结构清晰,封装性,便于操作和自省;具原创 2017-11-05 10:54:44 · 466 阅读 · 31 评论 -
软件需求过程
软件的开发阶段软件定义阶段,软件开发阶段,软件的运行和维护软件定义阶段了解需求--确定目标--分析可行性--采取实现策略(系统需要完成功能)--估计成本和资源--制定进度表正如上述所言,软件需求工程正是软件定义阶段的第一步。软件需求过程一、需求的获取在实际的需求获取中,可能会存在以下的一些问题: 1、客户说不清楚需求 2、需求自身经常变动原创 2018-02-04 18:33:39 · 1536 阅读 · 24 评论 -
软件
软件发展程序设计阶段--50至60年代 机器语言,汇编语言,受硬件控制,软件具有不通用的缺点程序系统阶段--60至70年代 作坊式开发 1968年提出软件工程的概念软件工程阶段--70年代以后 面向对象软件计算机系统是通过运行程序来实现各种不同的应用。而这些程序称为软件组成:程序(预先设计好的指令序列)指令集数据及其相关文档(图文材料)正确运行的数据结构原创 2017-12-16 21:08:28 · 387 阅读 · 34 评论 -
C#-简介
DOTNET.Net是.Net Framework框架。其中DOT是Distributed Object Technology的简称。意为分布式对象技术。.Net是一个微软开发的编程环境,可以使用C#,VB等多种编程语言。开发应用:1.桌面应用程序,Winform应用程序2.internet应用程序,网站开发ASP.NET3.手机开发,wp8交互模式:1.C/S:客户机/服务器模式2.B/S:浏览...原创 2018-04-06 09:44:17 · 343 阅读 · 25 评论 -
C#-运算符
C#中所涉及的最基础的运算符一、赋值运算符变量可以重复赋值,一旦变量赋予变量,旧的也就不存在了+ 两边有一个是字符串,那么为连接作用int number1 = 10;//赋值int number2 = 5;int number3;number3 = number1;number1 = number2;number2 = number3;Console.WriteLine("numbe...原创 2018-04-22 19:52:07 · 235 阅读 · 33 评论 -
C#-子类和父类之间的转换
前言C#是面向对象的设计语言,在使用时会使用到类。类又可以分为父类和子类,在实际的使用过程中,会通过子类和父类之间的转换来达到,下面来介绍一下如何进行父类和子类之间的转换子类和父类的关系1.子类没有继承父类的私有字段,但可以继承属性和方法,继承具有单根型和传递性2.子类会默认调用父类的无参数构造函数,如果父类中重写了一个有参数的构造函数,无参数的构造函数会被覆盖,子类调用报错(解决方法:使用bas...原创 2018-05-12 16:44:50 · 9538 阅读 · 16 评论 -
设计模式—总结
设计模式的出现主要是为了提高代码的复用性,经过众多软件开发人员试验和错误总结出来的。设计模式分为三种类型:创建型模式 结构型模式 行为型模式 单例模式、建造者模式、原型模式、工厂模式、抽象工厂模式 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 模板模式、职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式...原创 2018-06-16 15:38:36 · 220 阅读 · 24 评论 -
C#-枚举与集合
枚举一个被命名的整型常数的集合,多用于原创 2018-06-17 16:20:23 · 829 阅读 · 30 评论 -
C#-面向对象思想
面对对象的三大特性<1>.封装每个对象都包含它能进行操作所需要的所有信息,这个特性成为封装。封装好处:1.良好的封装能够减少耦合2.类内部的实现可以自由地修改3.类具有清晰的对外接口<2>.继承继承定义了类如何相互关联,共享特性。继承的工作方式是定义父类和子类,其中子类继承父类的所有特性,子类不但继承了父类的所有特性,还可以定义新的特性。子类继承父类:1.子类拥有父类非Pr...原创 2018-06-17 10:26:53 · 637 阅读 · 21 评论 -
设计模式-原则
一、设计模式设计模式是一套被反复使用的、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被人理解、保证代码可靠性。二、原则单一职责原则:就一个类而言,应该仅有一个引起它变化的原因开放—封闭原则:依赖—倒转原则:...原创 2018-06-02 18:07:09 · 197 阅读 · 17 评论 -
设计模式-原型模式
原型模式用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。从一个对象再创建一个可定制的对象,而且不需知道任何创建的细节。 Memberwiseclone()方法,如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型的,则复制引用但不复制引用的对象。形成原始对象与其复本引用同一对象。...原创 2018-06-06 09:38:11 · 207 阅读 · 17 评论 -
设计模式—建造者模式
一、建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的好处使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。二、使用范围1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时2.当构造过程必须允许被构造的对象有不同表示时三、构造图四...原创 2018-06-04 21:21:41 · 175 阅读 · 12 评论 -
设计模式—单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点目的使类的一个对象成为系统中的唯一实例。从客户端对其进行实例化。需要一种只允许生成对象类的唯一实例的机制。“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯...原创 2018-06-03 20:59:25 · 188 阅读 · 13 评论