`
ch.net
  • 浏览: 112629 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

带参数委托的用法

    博客分类:
  • c#
阅读更多

类文件代码:

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" />

分享到:
评论

相关推荐

    C#委托的使用方法(Demo)

    1.委托的基本用法 2.多重委托 3.匿名方法 4.Lambda表达式(一个或多个参数) 在VS2008下测试。

    C# winform窗体间传值(使用委托或事件)

    使用方法:使用vs2013打开编译运行即可; 工程中总共介绍了三种方法: ###方法1:通过保存对象的引用调用其方法实现对子窗体的控制; ###方法2:通过委托,在子窗体显示之前,为委托赋值,关注主窗体的数据变化,当...

    委托实例,简单易懂

    也就说两者是有区别的:委托是面向对象的,类型安全的,是引用类型(开始就说了委托是个类),所以在使用委托时首先要 定义——&gt;声明——&gt;实例化——&gt;作为参数传递给方法——&gt;使用委托。下面就具体看下如何使用委托...

    C#中委托和事件 方法的使用

    C# 中的委托和事件 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托、事件与Observer设计模式 Observer设计模式简介 实现范例的Observer设计模式 .Net Framework中的委托与事件

    C++中委托的实现方法

    C++模拟实现的类似于C#的委托。...相对于前一版本,此版本使用STL封装了参数列表的变化,支持包含0到9个参数的函数的委托形式,此外增加了对于全局函数(类静态函数)的委托的支持。 在Visual C++ 6.0下测试通过。

    c#中的委托与事件

    委托是一个类,是定义了方法的类型,使的可以将方法当做另一个方法的参数来传递, * 这种方法动态的赋给参数的做法,可以避免在程序中大量使用IF else语句同时使的 * 程序具有更好的可扩展性。 *声明:1.声明委托...

    C#线程带一个及多个参数实例

    C#线程带一个及多个参数实例,其中带多个参的采用匿名委托,整个实例非常适合初学线程者及从事软件开发者研究。

    C# 委托的简单示例源码

    自己学习C#时,练习委托的简单示例源码 演示委托的声明、用法;委托链的操作;委托作为参数传递给方法调用等。适合初学者!

    C#高级编程_委托和事件

    在许多Windows API 中使用过回调。Visual Basic添加了AddressOf关键字后,开发人员就可以利用以 前一度受到限制的API 了。回调函数实际上是方法调用的指针,也称为函数指针,是一个非常强大的 编程特性。.NET 以委托...

    VS2008 C# 委托 事例

    C#委托可以看做是方法引用,或者叫方法指针,它和c++中使用的函数指针最大的区别就是委托是类型安全的。 委托声明时必须将方法的返回值和详细的参数列表列出来,这样在为委托指定方法时,可以进行类型安全的检查。

    事件.pdf(委托和事件有什么不同)

    /// EventArgs是执行这个事件所需要的数据源, e里面带有参数可使用 /// /// 委托和事件有什么相同 /// 1:多播委托: 都是要+=或者-=的方式赋值 /// /// 事件的作用 /// 事件的作用于委托变量一样,只是...

    一个实用的C 委托库代码分享.rar

    源码包中还有对这个库的使用方法和文档的内容,包括:支持编译器和性能、声明形式的说明、构造函数说明、函数绑定(支持普通函数,仿函数,类成员函数,相同类型委托和委托中的元素)、判断绑定的函数个数、函数解...

    01: 委托 事件 入门.pdf

    //Combine方法将第二个参数,添加到dgObj中,并返回委托对象。 c. this.DoTestDelegateFun(new DGSayHi(this.SayHi)); Delegate类、Invoke方法、Combine方法是哪来的呢? (二)、委托原理 1.delegate 关键字 (1)....

    c#中使用委托按升序和降序对一组随机生成的整型数组元素进行排序

    要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...

    C#中委托的基本用法总结

    而C中的函数指针被赋值的时候(在C#中,就是委托实例化的时候,因为C#中后台将委托处理成一个类了,封装了哈)被赋予的值是否满足类型的种种条件(返回值,参数类型,参数个数)不做检查,由用户给出保证,C#会编译...

    面试要回答的委托.pdf

    使用委托使程序员可以将方法引用封装在委托对象内。然后调用该委托对象就可以执行委托对象内方法引用指向的方法,而不必在编译时知道将调用哪个方法(如参数为委托类型的方法,也就是提供了为程序回调指定方法的机制...

    C# 异步编程 AsyncCallback委托

    异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)

    C#中的委托delegate用法的示例详解

    本章中,我将由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.NET Framework 中的委托和事件、委托中方法异常和超时的处理、委托与异步编程、委托和事件对Observer 设计模式的意义,对它们的编译代码也做...

    C#面向对象:委托及事件.pdf

    –一个方法需要对另一个方法进行操作,此时需要将第二个方法作为参数传递到第一个方法中 •因为.Net是类型安全的,所以不允许直接将方法进行传递,所以需要将方法的细节包装在新类型的对象中,即委托

    C# 委托多线程 学习

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。

Global site tag (gtag.js) - Google Analytics