gpt4 book ai didi

c# - C# 中有函数类型吗?

转载 作者:IT王子 更新时间:2023-10-29 04:45:50 24 4
gpt4 key购买 nike

我想知道在 C# 中是否有像 AS3 中那样的函数类型。我想做这样的事情(但在 C# 中):

private function doSomething():void {
// statements
}

var f:Function = doSomething
f()

最佳答案

是的,它们在 .NET 中称为委托(delegate),而不是函数类型。

您使用保留关键字delegate定义新的,类库中预定义了很多。

要定义一个与您的示例匹配的:

public delegate void DoSomethingDelegate(Object param1, Object param2);

然后分配它:

DoSomethingDelegate f = DoSomething;
f(new Object(), new Object());

在基类库中还定义了两种通用类型的委托(delegate)类型,一种用于返回值的方法,一种用于不返回值的方法,它们随参数的数量而变化。

这两个是Func<..>对于返回值的方法,以及 Action<..>对于没有的方法。

在您的情况下,这会起作用:

Action<Object, Object> f = DoSomething;
f(new Object(), new Object());

请注意,在最后一种情况下,您不必声明 DoSomethingDelegate .

关于c# - C# 中有函数类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313297/

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