gpt4 book ai didi

performance - C#委托(delegate)参数大小

转载 作者:行者123 更新时间:2023-12-03 17:53:55 26 4
gpt4 key购买 nike

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

编辑

委托(delegate)只指向方法对吗?他们不能指向我正确的结构或类。

最佳答案

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

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!");

}

}

关于performance - C#委托(delegate)参数大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com