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

标签 c# function types

我想知道在 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/

相关文章:

c# - 在 C# StringBuilder 结构体中导入 C dll

c++ - 具有特定长度的 vector 类

java - 错误无法应用于给定类型

c# - 使用SwitchParameter的PowerShell自定义Cmdlet

javascript - 如何正确创建带有 'Url.Action' 查询字符串的 url,以便它在 Firefox 中工作

c# - 如何根据条件创建嵌套的 XElement?

javascript - 有没有办法简化这段 JavaScript 代码?

C - 函数中的结构分配

linux - 在 Linux 中找不到 svc_tli_create

python - 为什么 Python 不抛出 '-> type' 函数定义的类型异常?