- 博客(21)
- 收藏
- 关注
转载 面向对象的5条基本设计原则
这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大师们在对软件架构的研究中经历了很长时间的摸索,从面向过程到面向对象,从设计原则到设计模式,总结了许多设计上的经典法则,而我们就只是站
2013-04-10 15:19:29
453
转载 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。 瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。 步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变
2013-04-10 15:18:49
464
转载 C#中A a=new B()的意义
A a=new B()的意义 前提:A是B的父类。 A a = new B(); 或 A a; B b=new B(); a=b; 这一句的过程是这样的, 1)创建一个类A的引用a 2)创建一个类B的实例 3)把类B的引用赋值给a 因为A是B的父类,所以,赋值成功。 过程: 当消息发送到子类并要求以确定的参数调用其中一个方法时: 消息的处理如下沿着类链自下而上逐级查
2013-03-20 16:26:23
754
转载 C#中的interface和abstract class之间的区别
a. interface中不能有字段,abstract class则可以; b. interface可以被多重继承(即可以被多个具体类实现),abstract class则不可以; c. interface中不可能有任何成员方法被实现,abstract class则可以。事实上,一个类中只要有一个成员方法是 abstract的,那么这个类就一定是abstract class,abstr
2013-03-07 17:25:23
672
转载 sql执行顺序
SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定
2013-03-06 14:57:21
405
转载 sql中的group by 和 having 用法解析
--sql中的group by 用法解析: -- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。 --它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 --注意:group by 是先排序后分组; --举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:
2013-03-06 14:00:17
408
转载 C#数组
数组概述 C# 数组从零开始建立索引,即数组索引从零开始。C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。 int[] table; // not int table[]; 另一细节是,数组的大小不是其类型的一部分,而在 C
2013-02-22 16:27:18
245
转载 C#中的委托和事件(续)
引言 如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。 为什么要使用事件而不是委托变量? 在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,
2013-01-07 14:00:09
212
转载 C# 中的委托和事件
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对
2013-01-07 13:58:54
235
转载 C#学习之接口
什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的。那么,我们来看一下如何声明和使用接口。 声明接口 声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账
2012-12-11 14:15:18
249
转载 虚方法(virtual)和抽象方法(abstract)的区别
虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。如: //抽象方法 public abstract class Animal { public abstract void Sleep(); public abstract void
2012-12-11 14:13:09
263
转载 使用T4为数据库自动生成实体类
T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器。使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML等代码。 下载示例代码 一 “Hello World ”代码生成器 1 创建一个C# Console工程,添加一个名为“HelloWorld.tt”的文本文件。
2012-10-31 19:43:53
825
转载 在EF下使用基于T4模版的POCO实体生成器
在Entity Framework 4.0提供了对POCO(简单传统CLR对象/Plain Old CLR Object)支持,这样让我们专注于业务逻辑和更有效的进行单元测试.并且POCO不需像默认EF实体一样要继承才能实现,所以可以更灵活的切换. 本文将介绍如何自动生成POCO并替换EF生成的实体.实现两者的分离,独立于EF存在. 下载安装POCO实体生成器 本文使用的是Microsoft
2012-10-31 11:37:07
709
原创 sql单表查询基础总结
1.查询子句处理顺序 from→where→group by→having→select(over,distinct,top)→order by 2.t-sql的三值谓词逻辑 t-sql使用三值谓词逻辑,结果可以为true,false或者unknown(不知道) 3.group by(分组) 如果查询涉及到分组,那么group by阶段之后的所有阶段(包括having,select,
2012-10-22 22:52:01
536
转载 基于.NET的WebService的实现
这个专题主要讲述的是webservice,因此这里我们的代码以Webservice相关为主,而其他工程,例如:ServiceGatherSite,WebSiteA等,只将简略介绍. 在VS2003中,开发一个webservice并不是件困难的事,首先,我们新建一个webservice项目(文件->新建->项目->C#->Web服务应用程序) 建完这个工程,我们将看到
2012-10-18 15:28:01
368
转载 .Net 中webService发布与调用
步骤:(学习工具:.net2005) 1.先打开C#,新建->网站->(选中)ASP.net Web服务->确定,OK,现在以新建了一个webService,里面会自动有一些代码,就它的"Hello World"吧,简单的测试就行了。 2.F5测试,会打开一个网页,显示是OK的。然后点生成->发布网站->设置好路径->确定,OK,现在在你设置的路径下会有一个asmx,DLL文件。
2012-10-18 15:06:52
493
原创 委托和事件
委托和事件 主要用于异步调用。 事件调用委托,委托调用方法。 委托和事件的区别: 1.委托和事件没有可比性。因为委托是类型,事件是属性(对象)。 2.标准的event方法实现事件。只能用“+=”注册自己,“-=”注销自己,外界不能有其他操作。但如果用Delegate就没办法控制,外界可以主动触发事件,也可以为null。 3.事件是用来阉割委托实例的。 委托的应用: 1.委托实现事件
2012-10-10 09:34:14
323
原创 virtual、abstract和interface
virtual 标记为virtual的方法,可以有自己的实现,可以在子类中用override重写。 abstract 标记为abstract的方法,不能有自己的实现,必须在子类中用override重写。 类里有abstract,类也必须是abstract。 抽象类中不必都是抽象成员。 interface 接口是没有任何方法的抽象类 可以有属性,方法,索引器,不能有字段,不能有实现。
2012-10-10 09:23:49
216
原创 out和ref
引用参数ref 使用规则: 使用引用参数时,必须在方法声明和调用中都是用ref修饰符。 实参必须是变量,在用作实参前必须被赋值。如果是引用类型的变量,可以赋值为一个引用或null。 值参数和引用参数的区别: 对于值参数,系统在栈上为形参分配内存,就像是复制了一份,所以对于值类型的参数不会改变值。 引用参数相当于给变量重新起名字,但是他们指向的是相同的内存位置,是同一个值,所以值会
2012-10-09 23:31:37
307
原创 readonly和const
readonly作用类似于声明一个字段为const,一旦值被设定就不能改变。 1.const字段只能在字段的声明语句中初始化,不能在声明后给它赋值。而readonly字段可以在字段声明语句中赋值,也可以在类的任何构造函数中赋值(如果是static字段,必须在static构造函数中完成初始化)。 2.const没有自己的存储位置,而是在编译时被编译器替换(const成员表现很像一
2012-10-09 23:00:43
312
转载 ASP.NET 页生命周期概述
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页的生命周期非常重要,这样就能在合适的生命周期阶段编写代码,以达到预期效果。此外,如果开发自定义控件,则必须熟悉页生命周期,从而正确地初始化控件,使用视图状态数据填充控件属性以及运行所有控件行为逻辑。(控件的生命周期基于页的生命周
2012-08-29 11:34:55
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅