摘要:
应用程序开发中,经常需要多窗体之间进行数据通信,写几个例子,把几种常用的通信方式总结一下:窗体:主窗体Form1是一个ListBox,单击选中某列时,弹出窗体Form2,Form2中两个控件,一个是TextBox,显示选中的该列的文本,另一个是按钮,点击时将修改后的值回传,且在Form1中修改相应的列的文本,同时Form2关闭。方法一:传值最先想到的,Form2构造函数中接收一个string类型参... 阅读全文
摘要:
C#中的代理(委托)/* 代理是一个可以引用方法的对象。当创建一个代理也就创建了一个引用方法的对象。 进而通过此引用就可以调用那个方法。因此代理可以调用它所指向的方法。 尽管方法不是对象,但他在内存中也是有物理地址的,此地址就是方法的入口点, 也就是方法被调用的地址。方法的地址可以赋给代理。 一旦一个代理引用了一个方法,就可以通过此代理来调用所有引用的方法, 而且代理引用的方法是可以改变的,这样同... 阅读全文
摘要:
C#中的delegate如果你有C++的编程背景,那这个问题就很简单了:C#中的delegate和C++中的函数指针基本是一回事,C#正是以delegate的形式实现了函数指针。不同的地方在于C#中delegate是类型安全的。 如果没有C或者C++的背景知识也没有一点关系。 要理解Delegate,首先,你要明白,它是一个类,他和Class是一个级别的概念,不同在于Class的定义包含字段和方法... 阅读全文
摘要:
C#基础: C#委托(代理)delegate 代理实际上类似于C++中的函数指针,因为C#中不存在指针,所以用代理可以完成一些原来在C++中用函数指针完成的操作,例如传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。但与函数指针相比,delegate有许多函数指针不具备的优点。首先,函数指针只能指向静态函数,而delegate既可以引用静态函数,又可以引用非静态成员函数。在... 阅读全文
摘要:
C#中事件的声明与使用 事件的声明和使用与代理有很密切的关系,事件其实是一个或多个方法的代理,当对象的某个状态发生了变化,代理会被自动调用,从而代理的方法就被自动执行。 声明和使用一个事件需要如下步骤:1.创建一个代理。2.在类的内部利用event关键字声明事件,并且在类中定义调用事件的方法,也可以定义一个处理事件消息的方法。 声明一个事件的基本形式有两种: 修饰符 event 类型 标识符 修... 阅读全文