摘要: 索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。索引器和数组比较:(1)索引器的索引值(Index)类型不受限制(2)索引器允许重载(3)索引器不是一个变量索引器和属性的不同点(1)属性以名称来标识,索引器以函数形式标识(2)索引器可以被重载,属性不可以(3)索引器不能声明为static,属性可以一个简单的索引器例子using System;using System.Collections;public class IndexerClass{ private string[] name = new string[2]; /... 阅读全文
posted @ 2012-08-27 23:59 Coder.Shen 阅读(58567) 评论(14) 推荐(37) 编辑
摘要: 属性的四个种类:(1)可读写(Read/Write)属性,需实现get和set访问器(2)只读(Readonly)属性,只实现get访问器(3)只写(Writeonly)属性,只实现set访问器(4)Static属性,只能访问静态数据using System;public class Prop{ private string m_name; private string m_sex; //属性Name,读取和设置m_name public string Name { get { return m_name; ... 阅读全文
posted @ 2012-08-27 22:03 Coder.Shen 阅读(477) 评论(1) 推荐(0) 编辑
摘要: 1:垃圾回收机制CLR托管堆:(1)第0代--预算容量256k(2)第1代--预算容量2M(3)第2代--预算容量10M注:在不同的程序中,托管堆上的实际内存管理对象的容量可能不会按照预算容量大小开辟当第0代对象充满的时候,会自动进行垃圾回收,这时第0代中未被释放的对象成为了第1代,而新创建的对象变成第0代,以此类推,当第0代再次充满的时候会继续执行垃圾回收,未被释放的对象会被添加到第1代,随着程序的执行,第1代对象中也会产生垃圾,此时垃圾回收器并不会立即执行回收操作,而是等第1代被充满变成第2代时被回收并整理内存。2:Finalize析构函数被调用的条件:(1)第0代对象充满(2)显示调用S 阅读全文
posted @ 2012-08-27 03:52 Coder.Shen 阅读(2073) 评论(0) 推荐(0) 编辑
摘要: using System;class A{ //静态构造函数用来初始化类的静态成员,使用类A时会自动调用,且不管该类有多少实例对象,该函数只执行一次 static A() { Console.WriteLine("类A静态构造函数被调用"); } public A() { Console.WriteLine("类A默认构造函数被调用"); } public A(int i) { Console.WriteLine("类A带参构造函数被调用"); }}class B:A{ public B... 阅读全文
posted @ 2012-08-27 02:03 Coder.Shen 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 1:value(值传递)、ref(引用传递)、out(输出传递)ref和out使用效果上面是等效的,它们的区别在于:参数标记为ref,那么必须在调用函数之前初始化参数的值;参数标记为out,调用函数之前不需要初始化对象,但调用的函数必要在函数返回之前为对象赋值using System;//value(值传递)、ref(引用传递)、out(输出传递)public class Test{ public static void ValueFun(int i) { i++; } public static void RefFun(ref int j) { ... 阅读全文
posted @ 2012-08-27 00:29 Coder.Shen 阅读(3607) 评论(0) 推荐(0) 编辑