`
hwpok
  • 浏览: 251789 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# 委托

    博客分类:
  • C#
阅读更多
/**//*
 * 由 SharpDevelop 创建。
 * 用户: huy
 * 日期: 2010-3-6
 * 时间: 23:30
*/


using System;
using System.Threading;
delegate void EatDelegate(string food);
class MyDelegate
{
    
static void zsEat(string food)
    
{
        Console.WriteLine(
"张三"+food);
    }

    
    
static void Main()
    
{
        EatDelegate zs 
= new EatDelegate(zsEat);
        zs(
"西瓜");
        Thread.Sleep(
5000);
    }

}



当我们需要把方法做为参数传递给其他方法的时候,就需要使用委托。

因为有时候,我们要操作的对象,不是针对数据进行的,而是针对某个方法进行的操作。

       我们还是来以代码入手

 

Code
using System;
namespace gosoa.com.cn
{
    public class test
    {
        public delegate string GetAString();
        public static void Main()
        {
            int x=10;
            GetAString firstString=new GetAString(x.ToString);
            Console.WriteLine(firstString());
            //上句和下面这句类似。
            //Console.WriteLine(x.ToString());
        }
    }
}

在上例中,public delegate string GetAString(); 就是声明了一个委托(delegate),其语法和方法的定义类似,只是没有方法体,前面要加上关键字 delegate 。定义一个委托,基本上是定义一个新类,所以,可以在任何定义类的地方,定义委托。

注意,在C#中,委托总是自带一个有参数的构造函数,这就是为什么在上例中,GetAString firstString=new GetAString(x.ToString); 通过这句初始化一个新的delegate的时候,给传递了一个x.ToString 方法。但,在定义delegate的时候,却没有定义参数。

      

在看另一个例子之前,我们先来了解下匿名方法。

       匿名方法的使用,我们看个例子

Code
using System;
namespace gosoa.com.cn
{
    public class test
    {
        delegate string GetUrl(string val);
        static void Main(string [] args)
        {
            string domin="asaadsad";
            GetUrl url=delegate(string  param)
            {
                 param="http://"+param;
                 return param;
            };
            Console.WriteLine(url(domin));
        }
    }
}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sendling/archive/2009/03/02/3948561.aspx

分享到:
评论

相关推荐

    C#委托 C#委托 C#委托

    本文将深入探讨C#委托的概念、用途、类型以及如何使用`DynamicInvoke`方法。 ### 1. 委托的基本概念 委托是C#中的一个类,它封装了指向方法的引用。换句话说,委托就像一个指针,但它指向的是方法而不是内存地址。...

    C#委托与事件

    在C#编程语言中,委托和事件是两个非常重要的概念,它们构成了事件驱动编程的基础。...在实际项目中,结合文档《C#委托与事件.doc》的详细分析,初学者将更好地掌握这些概念,并能够在实践中得心应手。

    C#委托demo C#委托demo

    本文将深入探讨C#委托的概念、用法及其在实际开发中的应用。 一、什么是委托 委托在C#中是一种类型,类似于指针,但更加安全和灵活。它封装了一个或多个方法的引用,可以看作是“方法的句柄”。委托类型由系统定义...

    C#委托事件-张子阳.pdf

    本文将以“C#委托事件-张子阳.pdf”这份资料为基础,深入探讨委托和事件的基础知识、应用场景以及它们在.NET Framework中的具体实现方式。 #### 二、委托的基本概念 **1. 为什么需要委托** 在前面的例子中,我们...

    详解C#委托,事件与回调函数

    详解 C# 委托、事件与回调函数 委托是 C# 中一种非常重要的概念,它可以将方法作为参数传递给其他方法,也可以将方法作为返回值返回给其他方法。委托的定义是:delegate 返回类型 委托名(参数列表);例如:...

    C#委托详解:匿名委托,委托的应用(含源代码)

    例如,`C#委托详解.pdf` 可能详细解释了委托的基本概念、用法以及如何结合匿名委托实现某些功能。而`委托与匿名委托.zip`可能包含了一些示例项目,你可以运行并查看其工作原理。 总的来说,掌握C#中的委托和匿名...

    C# 委托的讲解

    C#委托的概念类似于其他语言中的函数指针,但它更安全、类型安全,并且支持多播,即一个委托可以同时引用多个方法。 首先,我们来深入理解什么是委托。委托在C#中是一种引用类型,它定义了一种方法签名,这个签名...

    C#委托代码样例DelegateDemo

    在C#编程语言中,委托(Delegate)是一种强大的特性,它允许我们把方法作为参数传递,或者存储在变量中...在`DelegateDemo`这个示例项目中,你可能会看到如何在实际代码中应用这些概念,从而加深对C#委托和事件的理解。

    C# 委托简单实例

    在C#编程语言中,委托是一种强大的特性,它允许我们传递方法作为参数或者将方法存储在变量中。这个“C# 委托简单实例”是理解委托概念的基础教程,特别适合初学者入门。该实例的核心是通过委托来实现温度监控,包括...

    C#委托示例代码

    本示例代码将深入探讨C#委托的使用及其重要性。 首先,理解委托的基本概念是至关重要的。在C#中,委托是一种类型,它封装了指向静态或实例方法的指针。这使得我们可以将方法当作其他方法的参数,或者存储在类的字段...

    C#委托解决不同页面的传值问题

    C#委托技术有很多作用,以下是一个简单的实例完成C#委托解决不同对象之间的传值或者方法调用的问题: 假设想想实现以下功能: 从主窗体中创建2个子窗体,想把2个子窗体的信息发送到主窗体中,并在主窗体中显示,在子...

    对C#委托及事件委托的理解

    ### C#委托及事件委托的理解 #### 一、委托的基础概念 在C#中,委托是一种类型,它允许我们封装方法引用。通过这种方式,可以在不同的上下文中调用这些方法,而无需硬编码调用的位置。这类似于C++中的函数指针,但...

    C#委托例子,简单易懂,适合初学者

    本教程将深入探讨C#委托的基本概念、用法及其在实际编程中的应用。 一、委托的定义与声明 在C#中,委托是一种类型,它代表了一个或多个方法的集合。委托的声明类似于类或接口,但使用`delegate`关键字。例如,我们...

    C#委托实例简单分析与应用

    本文将深入探讨C#委托实例,尤其是关于`SimpleDelegate`的使用和`MultiCall`方法的重复调用。 首先,我们要了解什么是委托。在C#中,委托是一个类,它继承自`System.Delegate`,用于封装一个或多个具有相同签名的...

    c#委托的使用简单例子

    标题“c#委托的使用简单例子”暗示我们将探讨如何在实际代码中应用委托。在C# 2005环境下,你可以创建一个Windows应用程序项目,然后使用委托来实现一些功能。虽然这里提到的是VS2005,但同样的概念也适用于后续版本...

    C# 委托技术的使用举例

    本文将深入探讨C#委托的使用,特别关注传统委托和多播委托的实例。 首先,让我们理解什么是委托。委托在C#中相当于一个对象,可以引用一个或多个具有相同签名的方法。它们是类型安全的,因为每个委托类型都与特定的...

    C#委托使用实例入门

    本文将深入探讨C#委托的使用实例,帮助初学者理解并掌握这一核心概念。 首先,理解委托的基本概念是至关重要的。在C#中,委托是一种类型,它代表了一个方法的签名。这意味着,当创建一个委托实例时,我们实际上是...

    C#委托的另一种写法

    接下来,我们将基于提供的代码片段深入分析C#委托的另一种实现方式,并讨论其实现原理及其应用场景。 ### 委托的基本概念 委托在C#中是一种引用类型的数据结构,它定义了方法的类型,使得可以将方法当作另一个方法...

    C#委托使用方法

    ### C#委托使用方法 #### 一、委托概念与作用 在C#中,委托是一种引用类型的数据结构,它允许将方法作为参数进行传递。简而言之,委托就是对函数的引用,它使得代码能够更加灵活地处理回调、事件驱动等场景。通过...

    详解C#委托,事件,Observer设计模式

    ### 详解C#委托,事件,Observer设计模式 在C#编程中,了解并掌握委托、事件以及Observer设计模式对于构建高效、灵活的应用程序至关重要。本文将深入探讨这些概念,并通过具体的示例来帮助理解。 #### 1. 将方法...

Global site tag (gtag.js) - Google Analytics