C#高级编程
经济鲨鱼
自学 总有十万个为什么
感谢您的指导
感谢您的帮助
展开
-
C#--继承的基本使用
没有使用继承的实例 调用各自方法 发现在”cat’和“Dag”俩个类存在代码重复 而当前情况比较特殊,因为重复内容是一样的,所以用继承来解决继承的应用继承使用的步骤与要点: 抽象公共部分,放到一个特定的类中(父类) 其它类(子类)只需要继承父类,即可拥有父类特征(属性和方法) 根据子类的需要添加属于自己的属性和方法父类:子类调试原创 2017-09-05 02:28:10 · 438 阅读 · 0 评论 -
C#--使用反射改进简单工厂
简单工厂存在的问题 需要修改代码,违反了面向对象中的“开-闭原则” 改进工厂方法的设计 只需修改一行代码就可以了,需要扩展的时候,这个方法不需要任何改动;但是要求配置文件中节点的值必须是类的名称。原创 2017-09-11 04:46:48 · 897 阅读 · 0 评论 -
C#--基于接口设计三层架构
项目之间的引用关系> 按照需求分析要求功能点,指定规范的层级接口,上一级开发人员调用的是下一级开发人员提供的接口,下一级人员只关心接口实现即可。 添加接口后项目框架的变化,IBLL业务接口层,IDAL数据接口层 编写业务逻辑接口IBLL编写数据访问接口IDAL编写UI中的相关操作 使用接口的好处:UI编写者无需关心BLL编写者的工作进度 在BLL原创 2017-09-12 04:04:43 · 4819 阅读 · 3 评论 -
C#--抽象工厂设计模式原理
抽象工厂设计模式原理问题引出: 开发了一套系统,使用的是SQLServer数据库,现在客户要求使用Oracle数据库,这么办??通常解决办法: 重新开发一套系统,UI和BLL不变,DAL改成对Oracle数据库操作。弊端: 需要同时维护俩套系统,如果有其他客户又要求使用MySql或者Access数据库又得重新开发,造成维护成本非常高!问题解决新方案: 使用抽象工厂设计模式,同时原创 2017-09-12 05:12:39 · 493 阅读 · 0 评论 -
C#--抽象工厂设计模式--三层框架
项目各层之间的引用关系搭建基于抽象工厂的三层框架设计数据访问接口模块DAL 编写SQLServer数据库的SQLHelper 。 和其他框架编写完全一样使用SQLServer数据提供程序实现IDAL中的所有接口方法编写访问Access数据库的AccessHelper 需要使用 using System.Data; using System.Data.O原创 2017-09-13 06:26:10 · 4752 阅读 · 0 评论 -
vs2017 创建安装项目
vs—–安装插件官网安装打包插件:Microsoft Visual Studio 2017 Installer Projects选择对应的vs版本下载后安装:安装前关闭掉vs 也可以去第三方官网安装InstallShield官网注册后下载安装也可选择对应版本安装好后打开vs217 查看 文件-新建项目-其他项目类型有:新建打包项目打开要打包的项目(解决方案) 输入项目名: 选择你的项目,指定原创 2017-10-19 01:54:37 · 8897 阅读 · 2 评论 -
ASP.NET--网站配置、发布与部署
网站发布前的配置信息配置文件下载网站发布的基本步骤写好的项目—在本机上发布 打开目录查看:部署网站安装IIs 打开控制面板→程序和功能→启用或关闭Windows功能安装后 返回控制面板 →管理工具双击打开: 安装ASP.NET4.0asp.net模块默认和iis直接没有建立任何关联,因此需要建立关联。 右键以管理员身份运行通过运行命令安装,在cmd运行窗口中输入: cd\WINDOWS\M原创 2017-10-20 20:51:42 · 36926 阅读 · 3 评论 -
c#--c#6新特性
自动属性新的初始化方法字符串格式化的新特性表达式属性和表达式方法泛型集合Dictionary初始化static声明静态类的引用nameof表达式null条件表达式原创 2017-12-05 05:58:00 · 649 阅读 · 0 评论 -
C#--LINQ查询技术研究与应用
Var关键字使用var注意的问题 var 只能定义局部变量,而不能定义成员变量。 定义的时候必须同时完成初始化,而不能使用var定义变量为null。 var本身不是一个新类型,只是用来修饰一个可以推断出具体类型的局部变量var定义变量于object类型定义的区别原创 2017-09-22 05:07:12 · 428 阅读 · 0 评论 -
C#--反射技术
什么是反射?反射的概念:反射是.Net中的一个重要技术,通过反射可以在运行时获得某个类型的各种信息,包括方法、属性、事件、及构造函数等,还可以获得每个成员的名称等信息。反射的特点: 在程序运行时,动态创建对象、调用方法、设置属性和激发事件,而不是在编译的时候完成。反射的应用: 在VS中的智能提示、使用MSIL反汇编工具查看IL代码都是用的反射技术。Java开发工具 Eclipse中的插件原创 2017-09-11 03:35:34 · 555 阅读 · 0 评论 -
C#--简单工厂设计模式
什么是设计模式 设计模式是人们在开发中遇到的共性问题而提出的一个解决方案, 程序开发中的设计模式只是一种参考,而不是一成不变的,工作中可以不断的研究、发现和总结。常见的设计模式简单工厂 典型应用:解决单一对象创建的扩展问题抽象工厂 典型应用:解决多种类型的数据库访问问题或不同业务逻辑单例模式 在Web开发中,设计购物车的时候需要使用通过实际问题去体会和理解设计模式问题如原创 2017-09-10 22:32:51 · 386 阅读 · 0 评论 -
C#--接口与多态
.net 中接口的定义规范 使用关键字interface定义,接口类名称通常使用 ‘i’开头。 接口中的属性、方法等,只是做一个声明,而没有任何实现。 接口中的属性、方法等,默认都是public。示例默认就是public其他访问修饰符是没有意义的。接口简单应用 接口的特点:接口实现类中的方法缺少一个都不行,而且方法的定义必须和接口中方法定义的规范完全一致。 接口具有强制性原创 2017-09-09 21:36:36 · 1157 阅读 · 0 评论 -
C#--继承的关键字
继承中的构造函数 可以使用this关键子访问父类成员,这和对象自己的成员访问是完全一样的。 发现方框标出来的部分依然存在代码重复Base关键字 使用关键字后 该关键子除了调用父类的构造方法以外还可以调用父类的属性和方法, 开发中需要访问父类的内容,都建议使用base关键字,这样程序逻辑会显得非常清楚。 主程序 显然逻辑非常清晰 调试protecte原创 2017-09-05 08:49:12 · 3459 阅读 · 0 评论 -
C#--抽象类、抽象方法、多态机制
父类与子类的互换 分别给子类添加方法 父类可以添加子类对象,子类自动转换成父类类型 取出时必须判断属于哪一个类对象,父类类型的对象必须强制转换成对应类对象,才能调用子类的方法。 根据面向对象的 “开-闭”原则可知: 软件功能扩展时应该增加类,而尽可能的减少类的修改,那该如何解决呢? 因此需要用到抽象类与抽象方法抽象类与抽象方法 父类添加关键字 子类用override重写父类未实原创 2017-09-05 20:28:12 · 459 阅读 · 0 评论 -
C#--多态与里氏替换原则
继承实现多态要求 父类中必须有抽象方法或虚方法 子类必须重写父类中的抽象方法或虚方法 子类对象必须转换成父类类型去使用父类 子类 父类类型作为方法参数类型 调用时,实际传递的是子类的对象里氏替换原则 分析代码: List.Add(objCat) 就是应用了里氏替换原则(LSP),里氏替换原则是面向对象中的一个重要原则。 里氏替换原则总结: 子类的对象原创 2017-09-06 07:23:53 · 2214 阅读 · 0 评论 -
C#--虚方法的使用
虚方法的使用 1:抽象方法仅仅是声明,没有任何实现内容;抽象方法一般必须在子类中被重写以后才有使用价值 2:针对抽象方法引出的问题:如果需要在父类中提供一个方法,该方法有自己的方法体,子类根据自己的需要决定是否重写该方法,而不是必须重写,这就是 ‘虚方法’ 3:使用关键字virtual修改时的虚方法父类 子类‘Cat’: 没有重写虚方法子类‘Dog’:重写了虚方法 子类没有重写原创 2017-09-06 08:43:22 · 14814 阅读 · 2 评论 -
C#-实体对象的可序列化
对象序列化的意义 将对象的状态保存在存储媒体中,以便可以在以后重新创建‘精确的副本’ 将对象从一个应用程序域发送到另一个程序域中,对象序列化以后能够保证数据传输过程中的稳定和安全 对象可序列化的方法就是在类的上面添加一个可序列化 标记 Serializable原创 2017-09-06 09:34:19 · 2333 阅读 · 0 评论 -
C#--三层架构设计方法(一)
三层架构的应用背景 系统功能较多而且业务复杂时,可以使用三层架构设计项目: BLL可以起到一个‘调节作用’,三层架构的设计能够很好的满足大、中型应用系统开发。三层架构的应用准备 项目直接的引用关系 DAL引用Models层 BLL引用DAL与Models层 用户界面层引用BLL与Models层三层框架中的命名规范原创 2017-09-06 12:37:14 · 2109 阅读 · 0 评论 -
C#--基于三层架构的应用实战
实现三层架构的学生系统查询DAL中的方法编写 查询全部学员 根据班级名称查询 私有方法 DAL中的方法实现非常简单,无需关心调用者的逻辑 在ClassService中添加数据访问方法 BLL中方法的编写 业务逻辑 根据用户提交的不同查询条件调用不同的数据访问方法 UI中方法的编写 三层架构设计优缺点总结 分层架构的优势: 分离开发人员的关注原创 2017-09-09 01:42:06 · 595 阅读 · 0 评论 -
C#--基于三层架构应用实战(二)
新增学员通用层的设计通用层常见类: 通用的辅助类和工具 数据验证 缓存处理 加密处理等 DAL中方法的编写BLL中方法的编写UI中的事件处理所用脚本SQL框架Git原创 2017-09-09 14:12:42 · 641 阅读 · 0 评论 -
c#--LINQ--查询语句与查询方法
初学LINQ基础 LINQ体验 什么是LINQ 对象查询的变化比较不采用LINQ技术的查询方法 获取数组中的奇数采用LINQ技术查询方法 举例 知识小结LINQ查询方法 LINQ查询方法详解—-Select()方法 LINQ查询方法详解–Where()方法 LINQ查询方法详解–OrderBy()方法 * LINQ查询方法详解 –GroupBy()方法* 知识小结LI原创 2017-12-06 14:18:25 · 4630 阅读 · 0 评论