学习C#(十三)高级C#技术

高级C#技术

一、::运算符和全局名称空间限定符

::运算符提供了另一种访问名称空间中类型的方式。如果要使用一个名称空间的别名,但该别名与实际名称空间层次结构之间的界限不清晰,就必须使用::运算符。在那种情况下,名称空间层次结构优先于名称空间别名。
应避免使名称空间的名称与已有的.NET名称空间相同,但这个问题只在大型项目中才会出现,作为大型开发队伍中的一员进行开发时,此类问题尤其严重。使用::运算符和global关键字可能是访问所需要的唯一方式。

二、定制异常

给CardLib添加定制异常

三、事件

事件的含义
事件类似于异常,因为它们都由对象引发(抛出),并且都可以通过我们提供的代码来处理。但它们也有几个重要的区别。最重要的区别是并没有与try…catch类似的结构来处理事件,你必须订阅(subscribe)它们。订阅一个事件的含义是提供代码,在事件发生时执行这些代码,它们被称为事件处理程序。

单个事件可提供多个处理程序订阅,在该事件发生时,这些处理程序都会被调用,其中包括引发该事件的对象所经历的类中的事件处理程序,但事件处理程序也可能在其他类中。

事件处理程序本身都是简单方法。对事件处理方法的唯一限制是它必须匹配事件所要求的返回类型和参数。这个限制是事件定义的一部分,由一个委托指定。

你可能感兴趣的:(C#)