问题1:委托声明定义了一种类型 是什么意思

解决方案 »

  1.   

       public delegate string Test(int a);这个委托定义就是参数为Int返回为String类型的方法...
      

  2.   

    http://www.programfan.com/blog/article.asp?id=37315
      

  3.   

    我 就是想理解这么一句话
    不需要很多
    委托声明定义了一种类型 是什么意思
    委托声明定义了一种什么类型
    不要告诉我声明定义了一种委托类型
    用这个例子来说    public delegate void MethodHandler(string str);
    是不是声明定义了MethodHandler类型????????求解
      

  4.   

    比如:public delegate string  myDelegate(string a);任何一个返回值为string,且只有一个形参为string的函数,都可以用这个委托来调用,那mydelegate委托就是定义了这种类型
      

  5.   

    http://phoebird.javaeye.com/blog/671203  C# 委托的定义 ,实例化 , 调用
      

  6.   

    也就是指定了该委托所代表的具有特定方法签名的方法。委托
    public delegate string  myDelegate(string a);
    方法
    public string method1(string str1)
    {
         ........
    }可以将符合该方法签名的任何方法作为参数传递给myDelegate委托
      

  7.   

    http://blog.csdn.net/tianyuworkroom/archive/2010/05/16/5598568.aspx
    C#中的委托和事件
    http://www.cnblogs.com/pursuedream/archive/2007/02/09/646269.aspx
    自定义委托事件处理
      

  8.   

    声明定义了一种类型,
    1、是指 声明委托相当于声明一个类、接口、int等类型一样,在类可以声明的地方都可以声明委托,
    2、使用起来也是跟其他类型也一样,没有预先声明的类型,是不能使用的。
      

  9.   

    委托声明定义一种类型,它用一组特定的参数以及返回类型封装方法
    如EventHandler以及其它自定义的事件委托都是一类特殊的委托
    delegate void 事件委托名(object sender,EventArgs e);
    object用来传递事件的发生者
    public delegate void SimpleDelegate ()
    这个声明定义了一个名为SimpleDelegate的委托,它可以封装任何不带参数不返回值的方法
      

  10.   

    问题1:委托声明定义了一种类型 是什么意思就是把方法当作了一种类型比如public delegate void myDelegate 那么myDelegate 不妨看成一个类型我们可以 void xxxx(string a,myDelegate func)
    注意红字标注的位置,此处他和基础类型string是一样的使用方式
      

  11.   

    public delegate void GreetingDelegate(string name);
    public void EnglishGreeting(string name)//注意此方法,它接受一个GreetingDelegate类型的方法作为参数
               private static void GreetPeople(string name, GreetingDelegate MakeGreeting) {
                   MakeGreeting(name);
                }           static void Main(string[] args) {
                   GreetPeople("Jimmy Zhang", EnglishGreeting);
                   GreetPeople("张子阳", ChineseGreeting);
                   Console.ReadKey();
               }
    为什么不是方法  而是方法的名称
      

  12.   

    委托是函数指针,它能够引用函数,通过传递地址的机制完成。
    委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。 每一个委托都有自己的签名,例如:Delegate int SomeDelegate(string s, bool b);
    是一个委托申明,
    在这里,提及的签名,就是说SomeDelegate 这个委托 有 string 和 bool 类型的形参,返回一个int 类型。当你对委托实例化时,要提供一个引用函数,将其作为它构造函数的参数。这里要注意了:被引用的这个函数必须和委托有相同的签名。
    比如:private int SomeFunction(string str, bool bln){...} 你可以把这个函数传给SomeDelegate的构造函数,因为他们有相似的签名(他们都有相同的形参类型和个数,并且返回相同的数据类型)。 
    SomeDelegate sd = new SomeDelegate(SomeFunction); sd 引用了 SomeFunction,也就是说,SomeFunction已被sd所登记注册,如果你调用 sd,SomeFunction 这个函数也会被调用。
      

  13.   


    昏倒,这个帖子居然集中了那么多人。“委托声明定义了一种类型 是什么意思”C#本质论中说,delegate是一种特殊的类,也就是说
    public delegate string myDelegate(string a);
    其实是定义了一个myDelegate类,这也就很好的理解了委托变量是如下的形式:
    myDelegate delegated;
    而delegated这个变量,处理起来确实也是跟普通的变量没什么区别地。ricercar 说了类似的概念。