摘要:接口是一组方法的集合,虽然在C#中,我们还可以在接口中定义属性,事件,但那不过是附加了元数据的方法。接口中的方法没有实现,继承他的类必须自己实现继承过来的方法,除非是抽象类。抽象类不可以被实例化。 在C#中,接口不可以继承其他的类型,但可以继承多个其它的接口。而一个类只能继承一个父类,但可以继承多个接口。在设计类的层次结构时,一般而言有两种 选择,可以继承接口,也可以继承一个类。继承类称为实现继承...
阅读全文
摘要:有的时候我们需要操纵一组对象的集合,这个时候我们就需要用到数组。所有的数组都是从System.Array继承过来的。而System.Array又是从System.Object直接继承过来的。所有的数组都是引用类型。 我们可以用以下代码声明一个数组. Code highlighting produced by Actipro CodeHighlighter (freeware)http://www....
阅读全文
摘要:在这里,我们讨论的克隆主要是对引用类型, 克隆分为浅拷贝和深拷贝。就浅拷贝来说,他只是在托管堆中重新生成一个对象,该对象每一个字段都与原来的对象共用。如图一: 而深拷贝是指递归拷贝其字段应用的所有对象。如图二所示: 深拷贝除了会引起额外的内存活动和资源消耗外,还可能陷入无限循环。
阅读全文
摘要:我们经常要去判断两个对象是否相等,在不同的情况下,相等的意义不一样。比如,int i=0; int j=0;我们会说他们相等,意思是值相等。再来考虑下面几行代码。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1 class RefObject2 {...
阅读全文
摘要:一般,一个类型可以定义一个或多个以下成员。 一:常数。表示恒定不变的数值的符号。 二:字段。可以只读,也可以可读可写。分为静态字段和实例字段。 三:实例构造器。一种特殊方法,用来将一个新对象的字段初始化到正常的初始状态。 四:类型构造器。一种特殊方法,用来将一个类型的静态字段初始化到正常的初始状态。 五: 方法。一个函数,用来查找或修改类型或对象的字段的值. 六: 重载操作符.也是一种方法,用操作...
阅读全文
摘要:回忆一下,在C#里面所有的类型分为两种,值类型,引用类型。值类型分配在线程堆栈上,其变量包含的不是地址,而是其所有字段的值。引用类型被分配在托管堆上,变量包含的是其地址。那么,现在考虑类型ArrayList,但你执行下面这段代码时会发生什么呢? Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Co...
阅读全文
摘要:在.NET中,所有的类型分为两种,值类型和引用类型。在我们使用一个类型的时候,必须分清它属于哪一 种,否则轻则程序效率降低,重则出现莫名其妙的BUG。 创建过程: 引用类型在托管堆上分配,在你使用new操作符的时候,CLR会在托管堆上为你分配一块内存,返回一个内 存的地址,进行相关的初始化操作,有时会引发垃圾收集操作。值类型直接在栈上面分配,为所有的字段 初始化为0(二进制意义上)。就创建一...
阅读全文
摘要:一般的来说,编译器直接支持的数据类型称为基元类型。在C#中,我们可以看到以下几种基元类型。sbyte 有符号8位值byte 无符号8位值short 有符号16位值ushort 无符号16位值int 有符号32位值uint 无符号32位值long 有符号64位值ulong 无符号64位值char...
阅读全文
摘要:昨日,一友人告知,可否于双休日的时候给他即将毕业的表弟讲讲C#的知识。当时也没细想,一口答应,心想,好歹玩C#三年之久,大大小小做了不少项目,讲讲C#应该不难。不想今天开始做点准备时才发现,平日只顾埋头苦干,疏于总结,一时之间千头万绪无从下手。许多东西其实一知半解,于是痛下决心,开始做一些总结。先从C#开始。应为都是以前学过的,所以叫回忆录。 ...
阅读全文