摘要:C#中消息的工作流程: C#中的消息被Application类从应用程序消息队列中取出,然后分发到消息对应的窗体,窗体对象的第一个响应函数是对象中的protectedoverridevoidWndProc(refSystem.Windows.Forms.Messagee)方法。 它再根据消息的类型调用默认的消息响应函数(如OnMouseDown),默认的响应函数然后根据对象的事件字段(如this....
阅读全文
随笔分类 - C#
摘要:引自:[中国自学编程网收集整理发布日期:2008-05-16]事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。 先来看看事件编程有哪些好处...
阅读全文
摘要:引自:[《电脑编程技巧与维护》2002年7期]深入浅出C#消息 一、消息概述 Windows下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。 1什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Me...
阅读全文
摘要:引自:[陈广视频]事件(event):1. 事件是类在发生其关注的事情时用来提供通知的方式。例如,封装用户界面控件的类可以定义一个在单击该控件时发生的事件。控件类不关心单击按钮时发生了什么,但它需要告知派生类单击事件已发生。然后,派生类可选择如何响应。2. 事件发行者(Publisher):一个事件发行者,也称作发送者(sender),其实就是一个对象,这个对象会自行维护本身的状态信息。当本身状态...
阅读全文
摘要:引用:[Mark Michaelis.Essential C#2.0]委托和事件:1. 委托:一个能够表示方法的数据类型;它将方法作为对象封装起来,允许在运行时间接地绑定一个方法调用。2. 声明委托数据类型:public delegate bool GreaterThanHandler(int first , int second);3. 委托的实例化:为了实例化委托,需要和委托类型自身的签名对应...
阅读全文
摘要:引自:[陈广视频]委托(delegate):委托声明定义了一种类型,它用一组特定的参数以及返回类型来封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。下面看一段代码:using System ;delegate void EatDelegate(string food);c...
阅读全文
摘要:接口:定义:接口就是语义相关的一个或多个抽象成员组成的命名集合。接口表示的是指定的类或结构需要支持的行为。->接口包含的成员不带访问修饰符(因为所有接口成员都隐式规定为公共(public)和抽象(abstract)的。->所有在接口中定义的成员都必须在要实现它的类或结构中实现。接口与抽象类的对比:->相同点: 当一个类派生自抽象基类时, 它必须实现抽象方法的细节(倘若派生类没有声...
阅读全文
摘要:引自:[陈广视频]接口(interface)接口(interface)定义了一个可由类和结构实现的协定。接口可以包含方法、属性、事件和索引器。接口不提供它所定义的成员的实现-它仅指定实现该接口的类或结构必须提供的成员。è 一个接口声明可以声明零个或多个成员。è 接口的成员必须是方法、属性、事件或索引器。è 接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型,...
阅读全文
摘要:引用:[陈广视频]抽象类(abstract)abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其它类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。è 抽象类不能实例化è 抽象类可以包含抽象方法和抽象访问器è 不能用sealed修饰符修改抽象类,这意味着抽象类不能被继承...
阅读全文
摘要:引用:[陈广视频]虚方法(virtual)Virtual 关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。看一段代码:using System ;class A{ public void F() { Console.WriteLine ("A.F"); }}class B:A{ public new void F()//注意new关键字 { Console.WriteL...
阅读全文
摘要:引用:[陈广视频]访问控制修饰符:访问控制修饰符类内部子类程序集内程序集外Default√Public √√√√Private√Internal√√√Protected√√Protected internal√√√è in...
阅读全文
摘要:参考:[陈广视频]类的构造器(constructor):1. 先看两个类定义:class A{ }相当于:class A: object{ Public A ( ) : base( ) { }}2. 在类定义中定义自定义构造函数,默认构造函数会被默默地删除; 所以必须为类显式重定义默认构造函数,否则不能使用默认构造函数创建类类型的实例.3. 看一个代码:using System ;class A{...
阅读全文
浙公网安备 33010602011771号