点点滴滴访问量:
摘要: 委托与事件 1、委托 通过委托能够实现 把方法做为参数传递给另一个方法。如多线程 委托的使用方式和类的使用很相似。定义委托的位置和类一样,既可将其直接定义在名称空间之下,也可定义在某个类中。 委托的定义没有方法体,是用关键字delegate来表明它是一个委托,也可以在委托定义中使用访问修饰符public、private、protected等。 所有定义的委托都是... 阅读全文
posted @ 2006-04-12 16:47 sopper 阅读(513) 评论(1) 推荐(0) 编辑
摘要: 构造函数的执行序列 在实例化一个类时,会一直追溯到这个类继承层次中最上层的类,即System.Object类,首先执行Object类的构造函数,然后从上至下依次执行继承层次中各类的构造函数。 实例化子类时,先从最上一级的父类开始实例,最后实例这个子类。 例: using System; namespace gouzaohanshuzxxl { ... 阅读全文
posted @ 2006-04-12 16:46 sopper 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 静态构造函数 前几节所介绍的都是实例构造函数,其只有在使用new关键字创建类的实例时才调用,仅仅声明一个类而不实例化它,则不会调用。 也可为类提供静态构造函数,其在不需实例化类的情况下就能自动调用。需要静态构造函数的主要日目的是初始化静态变量的值。 注意,静态构造函数没有访问修饰符,其他C#代码从来不显式调用它,只是在加载类时,总是山由.net运行时调用它,所以像pub... 阅读全文
posted @ 2006-04-12 16:45 sopper 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 构造函数 构造函数是类的一种特殊方法,它的特殊性主要体现在如下几方面: l 构造函数的方法名和类名相同; l 构造函数没有返回类型; l 构造函数的主要作用是完成对类对象的初始化工作; l 在创建一个类的新对象时,系统会自动调用该的构造函数初始化新对象; C#的类有两种构造函数:实例构造函数和静态构造函数。 实例构造函数... 阅读全文
posted @ 2006-04-12 16:44 sopper 阅读(2478) 评论(5) 推荐(0) 编辑
摘要: 外部方法 C#引入了extern修饰符来表示外部方法,外部方法是用C#以外的语言实现的方法,例如win32 API 函数。 API(Application Programming Interface)是Windows应用编程的接口例:using System; using System.Runtime.InteropServices; //在C#中调用API函数,首先必须导入一个N... 阅读全文
posted @ 2006-04-12 16:43 sopper 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 调用方法的基类版本 在上面的方法隐藏和重写中,我们总是在派生类中重新定义了方法的功能,但有时我们希望派生类中的方法除了完成其基类版本可以完成的各种工作外,还要完成其他的工作。这时就有可能需要在派生类的方法重写中调用该方法的基类版本,使用关键字base就可以做到这一点。 例: using System;namespace diaoyongfangfajlbb{class Class1 { ... 阅读全文
posted @ 2006-04-12 16:38 sopper 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 方法的重写 方法重写是实现多态机制的一种方式。 方法重写:例如,如果我们针对汽车、飞机、轮船等交通工具编程时,其有共同的地方,如都可以启动,我们就可以将这些共同的东西封装在一个基类中,然后在派生类中针对具体的情况重写各自的启动方法。 1 要使基类方法可以被派生类重写,需要在方法的声明中加上关键字 virtual.这种方法称为虚拟方法。同进,在派生类中,重... 阅读全文
posted @ 2006-04-12 16:37 sopper 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: 方法隐藏 在派生类中定义一个与基类方法同名的方法,并不会引发错误,而是派生类中的方法隐藏了基类中的同名方法。实际上,我们常常不希望隐藏方法,因为隐藏方法后,可能导致出现不期望的结果。如下面:语句MyClass c2 = new MySubClass()创建了一个MySubClass类的实例,但是使用c2.Hello()输出的却是“Hello,MyClass!”,而不是“He... 阅读全文
posted @ 2006-04-12 16:36 sopper 阅读(425) 评论(1) 推荐(0) 编辑
摘要: 方法的重载 方法重载的完整定义是:可以在一个类中定义多个同名方法,这些方法通过不同的参数类型或者参数个数来区分。注意,不能仅仅通过返回值类型的不同来定义多个方法。 下面是一个例子,有一个问题是:怎样通过参数来调用方法? using System; namespace ffcz121 { class Class1 { [STAThr... 阅读全文
posted @ 2006-04-12 16:34 sopper 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 静态方法 C#的类中可以包含两种方法:静态方法和非静态方法。 使用了static 修饰符的方法为静态方法,反之则是非静态方法。 静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例,而是采用类名.静态方法的格式 。 下面是一个使用静态方法的例子 using System; namespace study1214 { ... 阅读全文
posted @ 2006-04-12 16:34 sopper 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 数组参数 如果形参表中包含了数组型参数,那么它必须在参数表中位于最后,另外允许是一维数组。数组型参数不能用ref 和out 修饰符。 下面是一个例子,在这个例子中我遇到两个问题: 1. params关键字的功能 2. 怎么样把输入的数字 做为数组使用 using System; namespace study121 { /// /// Class... 阅读全文
posted @ 2006-04-12 16:33 sopper 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 和大家共同学习C#,拿自己的学习笔记和大家分享,还请大家多多指教。 概念性的东西: 执行一个程序,必然就产生一个进程,执行程序码是线程的工作,当一个进程建立起来,主线程也就产生,所以每一个windows程序一开始就有了一个线程,线程是CPU分配时间的单位,所谓工作切换其实就是对线程的context的切换。 进程:表示一个执行中的程序; 线程:是CPU调试单位; 强类型:每一个变量都将有一个精确... 阅读全文
posted @ 2006-04-12 16:30 sopper 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 4、数组参数 如果形参表中包含了数组型参数,那么它必须在参数表中位于最后,另外允许是一维数组。数组型参数不能用ref 和out 修饰符。 下面是一个例子,在这个例子中我遇到两个问题: 1. params关键字的功能 2. 怎么样把输入的数字 做为数组使用 using System; namespace study121 { /// /// Cla... 阅读全文
posted @ 2006-04-12 16:26 sopper 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 和大家共同学习C#,拿自己的学习笔记和大家分享,还请大家多多指教。 概念性的东西: 执行一个程序,必然就产生一个进程,执行程序码是线程的工作,当一个进程建立起来,主线程也就产生,所以每一个windows程序一开始就有了一个线程,线程是CPU分配时间的单位,所谓工作切换其实就是对线程的context的切换。 进程:表示一个执行中的程序; 线程:是CPU调试单位; 强类型:每一个变量都将有一个精确... 阅读全文
posted @ 2006-04-12 16:22 sopper 阅读(133) 评论(0) 推荐(0) 编辑