c# - 使用委托(delegate)作为参数

标签 c#

我有两个具有以下签名的方法

void Invoke(Action method)
void Foo()

下面两行代码有什么区别?

Invoke(new Action(Foo));

Invoke(Foo);

第二行是否允许?

谢谢

最佳答案

为什么不尝试一下呢?

如果您的方法的签名是

void Invoke(Action objAction)

那就合法了。然后这两个调用是相同的。此功能称为“隐式方法组转换”。

关于c# - 使用委托(delegate)作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1945234/

相关文章:

c# - 在 UTF16 列中存储 UTF8 数据

c# - 应用程序在 Galaxy S3 Mini 中崩溃,但在其他型号中有效

c# - 如何知道 WCF 服务是否使用 protobuf-net?

c# - 为什么我在 C#(和其他问题)中没有收到过大数字的警告?

c# - 使用 python 通过 TCP 将图像发送到 c# 服务器

c# : how to easily display a Dictionary<string, int>?

c# - Microsoft.Reporting.WebForms.ReportViewer contol 在 ToolBar 中添加自定义控件

c# - String[].Count() 给出奇怪的结果

c# - 在谷歌电子表格中添加一行

c# - 由字段初始化引起的有害代码爆炸的真实示例是什么?