摘要: using System;using System.Collections;//用栈结构模型说明泛型的使用//<T>声明一个泛型类,T是一个类型public class Stack<T>{ private T[] items; private int count; public Stack(int size) { items = new T[size]; count = 0; } //压栈 public void Push(T item) { items[count++] = item; } ... 阅读全文
posted @ 2012-09-10 01:09 Coder.Shen 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 装箱操作是把一个值类型的变量封装成引用类型变量来使用,装箱的步骤具体分为:(1)从托管中分配好内存,分配的内存量是值类型的各个字段所需的内存量加上同步块和方法表指针所需的内存量(2)把值类型的字段复制到新分配的对内存中(3)返回对象地址,现在这个地址是一个对象的引用,属于引用类型 阅读全文
posted @ 2012-09-08 22:16 Coder.Shen 阅读(276) 评论(0) 推荐(0) 编辑
摘要: C#中的类型有两种:(1)值类型-valueType值类型的变量直接包含它们的数据值类型包括:简单数据类型(int、float、bool、double、byte、char等等)、枚举类型(EnumType)、结构类型(StructType)struct MyStruct{ public int value;}class Test{ static void setValue(MyStruct st) { st.value = 11111; } static void Main() { //在堆栈上创建m1,并直接存储了对象数据 ... 阅读全文
posted @ 2012-09-06 23:05 Coder.Shen 阅读(336) 评论(0) 推荐(0) 编辑
摘要: ***接口是对方法的抽象,而对象是对类的抽象接口的规定:(1)接口(interface)定义了一个可由类和结构实现的协定(2)接口可以包含方法、属性、事件和索引器(3)所有接口都隐式具有public访问属性(4)接口不能包含常量、字段、运算符、构造函数、析构函数、类型(5)接口不能包含abstract、public、protected、internal、private、virtual、override、static修饰符(6)接口不提供它所定义的成员的具体实现(7)一个类如果继承了接口,那么该类必须实现接口中的全部方法,包括这个接口的基接口(8)接口可以实现多重继承1、声明一个接口//inte 阅读全文
posted @ 2012-09-04 00:41 Coder.Shen 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: abstract修饰符可以和类、方法、属性、索引器及事件一起使用,在类声明中使用abstract修饰符以表明这个类只能是其他类的基类。抽象类的特性(1)抽象类不能被实例化(2)抽象类可以包含抽象方法和抽象访问器(3)不能用sealed修饰符修改抽象类,因为抽象类本身就是用来给其他类继承的(4)抽象类的非抽象子类必须实现其继承的所有抽象方法和抽象访问器抽象方法(1)抽象方法是隐式的虚方法(2)抽象方法只允许声明在抽象类中(3)抽象方法不能提供实际的实现,所以没有方法体;抽象方法的实现是在非抽象的派生类中以override重写实现的(4)抽象方法声明中不可以使用static或者virtual修饰符 阅读全文
posted @ 2012-09-02 21:52 Coder.Shen 阅读(9551) 评论(2) 推荐(1) 编辑
摘要: 作用:子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现C#中的虚方法使用virtual关键字定义public virtual void eat();override关键字作用是对父类的virtual方法进行重写public override void eat();代码举例:using System;using System.Collections;public class Animal{ public Animal() { } public virtual void eat() { }}public class dog:Animal{ public o... 阅读全文
posted @ 2012-09-02 19:33 Coder.Shen 阅读(8524) 评论(0) 推荐(1) 编辑
摘要: 事件的四个步骤:(1)在事件发行者中定义一个事件//声明一个事件,首先要声明一个和事件关联的委托类型//声明delegate时,其返回值必须为void类型public delegate void DelegateAccount(string info);public delegate void DelegateSales(string info);//根据前面声明的委托类型,声明事件//事件的声明使用event关键字,后面是委托类型和事件名称public event DelegateAccount OnAccount;public event DelegateSales OnSales;(2) 阅读全文
posted @ 2012-08-31 03:07 Coder.Shen 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用if-else(switch)语句,同时使得程序具有更好的可扩展性。使用委托可以将多个方法绑定到同一个委托变量上(通常称这个委托变量为:委托链),当调用此变量时,会依次调用所有绑定的方法;于此同时,也可以通过类似绑定的方式删除方法。一个简单的委托例子using System;using System.Collections;namespace Delegate{ //用delegate关键字声明一个委托 //委托原型必须与预委托的方法具有相同的返回... 阅读全文
posted @ 2012-08-31 00:47 Coder.Shen 阅读(925) 评论(0) 推荐(2) 编辑
摘要: 索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。索引器和数组比较:(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 阅读(58620) 评论(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 阅读(478) 评论(1) 推荐(0) 编辑