源码
资讯
  当前位置:源码网网络学院网络编程.NET教程 → C#学习第十天
特别推荐
热点TOP10
C#学习第十天
日期:2007年4月20日 作者: 人气: 查看:[大字体 中字体 小字体]

该类仅有一个方法,它允许我们触发事件。请注意,你必须进行事件域成员不为null的检测,因为可能会出现没有客户对事件感兴趣这种情况。

TestApp类包含了Main 方法,也包含了另外两个方法,它们都具备事件所必需的信号。其中一个方法是静态的,而另一个是实例方法。

EventSource 被实例化,而静态方法CatchEvent被预关联上了 TextOut事件:
evsrc.TextOut += new EventHandler(CatchEvent);

从现在起,当事件被触发时,该方法被调用。如果你对事件不再感兴趣,简单地取消关联:evsrc.TextOut -= new EventHandler(CatchEvent);

注意,你不能随意取消关联的处理函数——在类代码中仅创建了这些处理函数。为了证明事件处理函数也和实例方法一起工作,余下的代码建立了TestApp 的实例,并钩住事件处理方法。
事件在哪方面对你特别有用?你将经常在ASP+中或使用到WFC (Windows Foundation Classes)时,涉及到事件和代表元。

5.5 应用修饰符

在这一章的学习过程中,你已经见过了象public、virtual等修饰符。欲以一种易于理解的方法概括它们,我把它们划分为三节:

。类修饰符
。成员修饰符
。存取修饰符

5.5.1 类修饰符

到目前为止,我还没有涉及到类修饰符,而只涉及到了应用于类的存取修饰符。但是,有两个修饰符你可以用于类:

abstract——关于抽象类的重要一点就是它不能被实例化。只有不是抽象的派生类才能被实例化。派生类必须实现抽象基类的所有抽象成员。你不能给抽象类使用sealed 修饰符。

sealed——密封 类不能被继承。使用该修饰符防止意外的继承,在.NET框架中的类用到这个修饰符。
要见到两个修饰符的运用,看看清单5.12 ,它创建了一个基于一个抽象类的密封类(肯定是一个十分极端的例子)。

清单 5.12 抽象类和密封类

1: using System;
2:
3: abstract class AbstractClass
4: {
5: abstract public void MyMethod();
6: }
7:
8: sealed class DerivedClass:AbstractClass
9: {
10: public override void MyMethod()
11: {
12: Console.WriteLine("sealed class");
13: }
14: }
15:
16: public class TestApp
17: {
18: public static void Main()
19: {
20: DerivedClass dc = new DerivedClass();
21: dc.MyMethod();
22: }
23: }

5.5.2 成员修饰符

与有用的成员修饰符的数量相比,类修饰符的数量很少。我已经提到了一些,这本书即将出现的例子描述了其它的成员修饰符。

以下是有用的成员修饰符:

abstract——说明一个方法或存取标志不能含有一个实现。它们都是隐式虚拟,且在继承类中,你必须提供 override关键字。
const——这个修饰符应用于域成员或局部变量。在编译时常量表达式被求值,所以,它不能包含变量的引用。
event ——定义一个域成员或属性作为类型事件。用于捆绑客户代码到类的事件。
extern——告诉编译器方法实际上由外部实现。第10章 “和非受管代码互相操作” 将全面地涉及到外部代码。
override——用于改写任何基类中被定义为virtual的方法和存取标志。要改写的名字和基类的方法必须一致。
readonly——一个使用 readonly修饰符的域成员只能在它的声明或者在包含它的类的构造函数中被更改。
static——被声明为static的成员属于类,而不属于类的实例。你可以用static 于域成员、方法、属性、操作符甚至构造函数。
virtual——说明方法或存取标志可以被继承类改写。

(出处:源码网)

百度搜索 Google搜索
相关文章:
·C#将指定网页添加到收藏夹的方法
·一个用c#写的扫描asp源码漏洞的应用程序(续)
·关于两代语言.C/C++,java/c#
·C#语言初级入门(1)
·C#语言初级入门(2)
·C#语言初级入门(3)
·C#语言初级入门(4)
·分部方法:应该纳入到C#中吗?
·C#冒泡算法!
·用C#开发智能手机软件:推箱子(一)
相关软件:
·C#版聊天室
·春天网络域名主机系统(C#全源码)
·自由投票调查系统(C#) v1.0
·C#语言参考(DOC)
·CK留言本(C#版)
·一个C#写的翻转棋游戏
·ASP.NET(C#)新手留言本