03 2009 档案
摘要:大李没告诉我接口与抽象类的区别,什么时候用接口,什么时候用实现继承。弄得我中饭也没吃好,老在琢磨这事,这不,一吃完饭,我就冲上楼,一个房间一个房间转,到处找大李。过了好一阵,这老哥才和几个同事说说笑笑地回到办公室,我立即走上前,半请半拉地把他拽到电脑旁。“大李哥,我实在想得头晕,既然在VB.NET中接口有了这么大的发展空间,在形式上与抽象类如此相似,那么它们有什么区别?什么时候用接口呢...
阅读全文
摘要:欢迎浏览本文的后续文章: C#中的委托和事件(续) PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式...
阅读全文
摘要:其它方式:工厂方式,构造函数方式,原型方式都各有各的大缺陷,这里就不一一介绍了,想了解的可以去看一下这本著作的第3章节。 1. 混合构造函数/原型方式 function Car(sColor, iDoors, iMpg) { this .color = sColor; this .doors = iDoors; this .mpg = iMpg; thi...
阅读全文
摘要:说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数据结构+算法。面向对象的程序开发,要做的第一件事就是,先分析整个程序中需处理的数据,从中提取出抽象模板,以这个抽象模板设计类,再在其中逐步添加处理其数据...
阅读全文
摘要:这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗? 从实际项目开发说起,这里有开发项目的三种方式: 开发项目中把BLL和DAL分开,...
阅读全文
摘要:反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 程序代码在编译后生成可执行的应用,我们首先要了解这种...
阅读全文
摘要:堆和堆栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态...
阅读全文
摘要:我们都知道,c#的两大数据类型分别为值类型和引用类型。很多人或许闭着眼睛都能说出值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等,但是当被问及到二者之间的联系和区别,什么时候用struct什么时候用class时,就常常混淆不清了。为此,了解值类型和引用类型的本质差异就变的很有必要了。 值类型直接存储其值,变量本身就包含了其实例数据,而引...
阅读全文
摘要:常见问题: Ilist 本身只是一个泛型接口, 既然是接口当然不能实例化,只能用如下方法 IList IList11 =new List (); 但是为什么要这么用呢,为什么不直接用List: List List11 =new List (); 第一种用法有什么好处。 总结归纳一下: Ilist 是在 .net2.0里面才支持的 好处嘛..比如说human和tiger都有行走...
阅读全文
摘要:在公共语言运行库和 C# 语言的早期版本中,通用化是通过在类型与通用基类型 Object 之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。通过创建泛型类,您可以创建一个在编译时类型安全的集合。 使用非泛型集合类的限制可以通过编写一小段程序来演示,该程序利用 .NET Framework 基类库中的 ArrayList 集合类。ArrayList 是一个使用起来非常方便的集合类,无需进行...
阅读全文
摘要:1. 引言 在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。 2. 概念引入 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回...
阅读全文
摘要:存储过程和触发器中回滚 如果 @@TRANCOUNT 的值在存储过程完成时与过程执行时不同,则会生成一个 266 信息类错误。该错误不是由触发器中同一个条件生成的。 当调用存储过程时,如果 @@TRANCOUNT 为 1 或更大,并且该过程执行 ROLLBACK TRANSACTION 或 ROLLBACK WORK 语句,则会产生 266 号错误。这是因为 ROLLBACK 回滚所有未完成的事务...
阅读全文
摘要:as用来在起别名时应用,还有就是指定要执行的操作,在创建存储过程,触发器,函数等时应用 go是语句结束标志 on 表示在那里,在创建表,数据库时应用
阅读全文
摘要:In:等值连接,用来查找多表相同字段的记录 Not In:非等值连接,用来查找不存在的记录 Inner join:内连接,主要用来查找都符合条件的记录 Left join:左连接,主要用来查找左边有,右边没有的用空值表达 Right join:右连接,主要用来查找右边有,左边没有的用空值表达 Order By:升序 Asc 降序 Desc Group By:分组排序 按字段分组(如按班级分),使...
阅读全文
摘要:char 和 varchar 固定长度 (char) 或可变长度 (varchar) 字符数据类型。 nchar 根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。 发表者:czfeng char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符...
阅读全文
摘要:Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮...
阅读全文
摘要://抽象方法:只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现。 //静态方法不能标记为 override、virtual 或 abstract,即静态方法都必须是具体的 /抽象类:含有一个或多个抽象方法的类称为抽象类,在声明时,类名前须添加"abstract"关键字 //抽象类中可以包含非抽象方法 //抽象类不能够被实例化,这是因为它包含了没有具体实现的方法,即可...
阅读全文
浙公网安备 33010602011771号