类文件代码:
using System;
using System.Web;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 给委托注册一个方法,当调用委托的时候,该方法自动执行
Handler += new DemoHandler(_Default_Handler);
}
protected void Button1_Click(object sender, EventArgs e)
{
_Handler(new DemoEventArgs("Hello World!"));
}
void _Default_Handler(DemoEventArgs e)
{
Response.Write(e.Id);
}
/// <summary>
/// 定义一个委托
/// </summary>
/// <param name="sender"></param>
/// <param name="freshEventArgs"></param>
public delegate void DemoHandler(DemoEventArgs e);
// 委托实例
private DemoHandler _Handler;
public event DemoHandler Handler
{
add { _Handler += value; }
remove { _Handler -= value; }
}
// 自定义一个事件参数,可自己加属性
public class DemoEventArgs : EventArgs
{
public string Id;
public DemoEventArgs(string id)
{
Id = id;
}
}
}
页面代码:
<asp:Button ID="Button1" runat="server" Text="调用委托指定的方法,显示 Hello World!" OnClick="Button1_Click" />
分享到:
相关推荐
1.委托的基本用法 2.多重委托 3.匿名方法 4.Lambda表达式(一个或多个参数) 在VS2008下测试。
使用方法:使用vs2013打开编译运行即可; 工程中总共介绍了三种方法: ###方法1:通过保存对象的引用调用其方法实现对子窗体的控制; ###方法2:通过委托,在子窗体显示之前,为委托赋值,关注主窗体的数据变化,当...
也就说两者是有区别的:委托是面向对象的,类型安全的,是引用类型(开始就说了委托是个类),所以在使用委托时首先要 定义——>声明——>实例化——>作为参数传递给方法——>使用委托。下面就具体看下如何使用委托...
C# 中的委托和事件 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托、事件与Observer设计模式 Observer设计模式简介 实现范例的Observer设计模式 .Net Framework中的委托与事件
C++模拟实现的类似于C#的委托。...相对于前一版本,此版本使用STL封装了参数列表的变化,支持包含0到9个参数的函数的委托形式,此外增加了对于全局函数(类静态函数)的委托的支持。 在Visual C++ 6.0下测试通过。
委托是一个类,是定义了方法的类型,使的可以将方法当做另一个方法的参数来传递, * 这种方法动态的赋给参数的做法,可以避免在程序中大量使用IF else语句同时使的 * 程序具有更好的可扩展性。 *声明:1.声明委托...
C#线程带一个及多个参数实例,其中带多个参的采用匿名委托,整个实例非常适合初学线程者及从事软件开发者研究。
自己学习C#时,练习委托的简单示例源码 演示委托的声明、用法;委托链的操作;委托作为参数传递给方法调用等。适合初学者!
在许多Windows API 中使用过回调。Visual Basic添加了AddressOf关键字后,开发人员就可以利用以 前一度受到限制的API 了。回调函数实际上是方法调用的指针,也称为函数指针,是一个非常强大的 编程特性。.NET 以委托...
C#委托可以看做是方法引用,或者叫方法指针,它和c++中使用的函数指针最大的区别就是委托是类型安全的。 委托声明时必须将方法的返回值和详细的参数列表列出来,这样在为委托指定方法时,可以进行类型安全的检查。
/// EventArgs是执行这个事件所需要的数据源, e里面带有参数可使用 /// /// 委托和事件有什么相同 /// 1:多播委托: 都是要+=或者-=的方式赋值 /// /// 事件的作用 /// 事件的作用于委托变量一样,只是...
源码包中还有对这个库的使用方法和文档的内容,包括:支持编译器和性能、声明形式的说明、构造函数说明、函数绑定(支持普通函数,仿函数,类成员函数,相同类型委托和委托中的元素)、判断绑定的函数个数、函数解...
//Combine方法将第二个参数,添加到dgObj中,并返回委托对象。 c. this.DoTestDelegateFun(new DGSayHi(this.SayHi)); Delegate类、Invoke方法、Combine方法是哪来的呢? (二)、委托原理 1.delegate 关键字 (1)....
要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...
而C中的函数指针被赋值的时候(在C#中,就是委托实例化的时候,因为C#中后台将委托处理成一个类了,封装了哈)被赋予的值是否满足类型的种种条件(返回值,参数类型,参数个数)不做检查,由用户给出保证,C#会编译...
使用委托使程序员可以将方法引用封装在委托对象内。然后调用该委托对象就可以执行委托对象内方法引用指向的方法,而不必在编译时知道将调用哪个方法(如参数为委托类型的方法,也就是提供了为程序回调指定方法的机制...
异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
本章中,我将由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.NET Framework 中的委托和事件、委托中方法异常和超时的处理、委托与异步编程、委托和事件对Observer 设计模式的意义,对它们的编译代码也做...
–一个方法需要对另一个方法进行操作,此时需要将第二个方法作为参数传递到第一个方法中 •因为.Net是类型安全的,所以不允许直接将方法进行传递,所以需要将方法的细节包装在新类型的对象中,即委托
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。