《C#入门经典》学习笔记(其他OOP技术)

来源:互联网 发布:java增删改查实例项目 编辑:程序博客网 时间:2024/06/02 10:36

其他OOP技术

 

::运算符和全局命名空间限定符

使用::运算符会强制编译器使用由using语句定义的别名

::运算符可以和global关键字一起使用,它是顶级根命名空间的别名
例如:
global::System.Collections.Generic.List<int>

 

定制异常

 

事件


什么是事件

事件由对象引发,可以提供代码来处理事件
订阅一个事件即提供代码并在事件发生时执行,称为事件处理程序
事件可以有多个订阅的处理程序
事件处理程序本身都是简单的函数


使用事件

处理事件

要处理事件,需要提供一个事件处理函数,订阅事件,该函数的签名应匹配于事件指定的委托签名


定义事件

多用途的事件处理程序

事件处理程序中常见的两个参数:
object source:引发事件的对象的引用
ElapsedEventArgs e:由事件传说的参数
通常在事件中使用Object类型参数,这是为了由不同对象引发的几个相同事件使用同一个事件处理程序

返回值和事件处理程序

可以为事件提供返回类型,但只允许访问由事件处理程序最后返回的那个值
但推荐使用void类型的事件处理程序,并避免使用out类型的参数

匿名方法

可以把匿名方法用作委托
创建匿名方法的委托:
delegate(parameters)
{
    // Anonymous method code
};
其中parameters是参数列表
例如:
delegate(Connection source, MessageArrivedEventArgs e)
{
   // Anonymous method code matching MessageHandler event
};

使用匿名方法:
myConnection1.MessageArrived += delegate(Connection source, MessageArrivedEventArgs e)
{
   // Anonymous method code matching MessageHandler event
};

注意:
对于匿名方法,对包含它们的代码块来说,它们是局部的,可以访问这个区域内的局部变量 

原创粉丝点击