【问题标题】:C# delegate parameter sizeC#委托参数大小
【发布时间】:2013-01-25 03:53:58
【问题描述】:

我想知道 C# 委托在传递给方法时是否会占用与 C 指针(4 字节)类似的空间量。

编辑

代表只指向方法对吗?他们不能指向我正确的结构或类。

【问题讨论】:

    标签: performance parameters delegates size


    【解决方案1】:

    是的,委托只指向方法,一个或多个。 参数必须与方法相似。

    public class Program
    {
    public delegate void Del(string message);
    public delegate void Multiple();
    
    public static void Main()
    {
        Del handler = DelegateMethod;
        handler("Hello World");
    
        MethodWithCallback(5, 11, handler);
    
        Multiple multiplesMethods = MethodWithException;
        multiplesMethods += MethodOk;
    
    
        Console.WriteLine("Methods: " + multiplesMethods.GetInvocationList().GetLength(0));
    
        multiplesMethods();
    }
    
    public static void DelegateMethod(string message)
    {
        Console.WriteLine(message);
    }
    
    public static void MethodWithCallback(int param1, int param2, Del callback)
    {
        Console.WriteLine("The number is: " + (param1 + param2).ToString());
    }
    
    public static void MethodWithException()
    {
        throw new Exception("Error");
    }
    
    public static void MethodOk()
    {
        Console.WriteLine("Method OK!");
    
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2014-12-10
      • 1970-01-01
      • 2015-12-17
      • 2012-07-12
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多