内联委托声明(C#)

35

我无法编译以下内容:

var x = new Action(delegate void(){});

有人可以指出我做错了什么吗?

2个回答

68

在使用匿名方法时,您不需要指定返回类型。以下代码可以正常工作:

var x = new Action(delegate(){});

一些替代方案:

Action x = () => {}; // Assuming C# 3 or higher
Action x = delegate {};
Action x = delegate() {};
var x = (Action) (delegate{});

1
@maxp,你也可以使用诸如Action x = delegate() {};的语法 - 两者都是相同的,所以根据你的喜好使用! - VinayC
2
@leppie:我也不喜欢,但这是使原始代码编译所需的最小更改 :) 我会提供一些替代方案... - Jon Skeet

20

为什么不用Lambda符号表示?

Action myAction= (Action)(()=>
{
});

1
可以简化为 Action myAction = () => { }; 吗? - Vimes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接