易截截图软件、单文件、免安装、纯绿色、仅160KB

《C#图解教程》读书笔记第16章——事件

这本书讲解
C#
语言十分详细,我将其中的重要内容整理成条款,以备忘。
1.      
事件是在满足某个特定条件时发生的,触发
(raise)
事件的对象称为发布者
(publisher)
,对这个事件进行响应的对象称为订阅者
(subscriber)
。事件处理程序是注册到事件的方法,可在任何类或者结构中。
 
2.      
自定义事件的步骤:
1.
委托声明:事件和事件的处理程序必须有相同的签名和返回类型。都通过对应的委托类型来描述。
2.
事件处理程序声明:在事件被触发后执行的方法。
3.
事件声明:在事件发布者类中声明保存并调用事件处理程序。
4.
订阅事件:将事件处理程序与事件连接起来。
5.
编写触发事件的代码:在发布者类中编写代码触发事件导致订阅此事件的事件处理程序被调用。
 
3.      
声明事件时需要委托的名字,语法为:
public event DelegateName EventName;
事件与委托的行为十分相似,原因是事件其实是对委托的封装,事件中包含一个私有的委托变量,提供对它的私有控制,并对外界提供了有限的操作方式
,这样用户代码就不可以对这个委托进行可能会破坏面向对象封装性的操作了。
+=

-=
是事件唯一允许的运算符
,它们分别用来对事件进行添加
和删除
事件处理程序。
 
4.      
注意:与委托不同,事件是一个类的成员
,而非是类型。事件是某个特定类型中的一种成员,它允许它所在的类型(或者类型的实例)在某些特定事情发生的时候通知其他对象。由于事件是成员,所以不可以使用对象创建表达式
(new)
来创建它的对象,且事件必须声明在类或结构中,另外:事件成员被隐式自动初始化为
null

 
5.      
触发事件看起来与调用方法类似。使用事件名称,参数列表包含在圆括号中。参数列表必须匹配事件的委托类型。
 
6.      
为事件添加事件处理程序时,处理程序必须和委托类型拥有相同的返回类型和签名
。通过
+=
运算符来为事件添加处理程序。事件处理程序可以是以下任何一种:
实例方法
静态方法
匿名方法
Lambda
表达式


相关文档:

用ASP.NET/C#连接Access和SQL Server数据库

连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwind.mdb" ......

c#(asp.net) updatepanel 局部刷新实例收藏

1
<asp:UpdatePanelID="UpdatePanel1"
        UpdateMode="Conditional"
        runat="server">
    <ContentTemplate>
        <asp:Button ID="Button1"
      ......

C#与C/C++的区别的地方


编译:C程序直接编译成标准的二进制可执行的代码,但C#的源程序并不是被编译成二进制可执行的形式,而是一种中间语言(MSIL),类似JAVA中的字节码
结构体:C#的结构体与C++的结构体相似。但是C#的结构体与类是不同的,而且不支持继承。
预编译:C#中存在预编译的指令支持条件编译,警告,错误报告和编译行控制。其指令 ......

C#小Tip:Xml操作简明手册 2


2)如何创建一个xml文档
由于xml实质也只是一个文本文件,所以最简单你可以直接使用System.IO下的类生成一个文件,并存储成xml文件,当然,你需要手动保证该文件形式良好,比如必须有根元素、必须有关闭标签、必须正确嵌套等等。
 
如果你懒得自己去想文件的形式,可以使用System.Xml下的类。
 
Code
Xml ......

C#序列化与反序列化Xml,利用范型做通用化处理

public class yzzSerialize
{
private yzzSerialize()
{ }
private static yzzCache cache = new yzzCache();
public static T GetfromXml<T>(string xmlpath, T t)
{
using (FileStream fs = new FileStream(xmlpath, FileMode.Open, FileAcces ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号