在C#中定义委托时的不同语法变化

本文关键字:语法 变化 定义 | 更新日期: 2023-09-27 18:19:27

我在工作中没有做我想做的那么多C#,我正在努力保持我的技能。我已经想出了以下方法来定义委托(尽管最后一种是作弊)。我是否遗漏了任何语法变体?

public delegate bool mytest(string input);
public static mytest delegateProperty { get; set; }
static void Main(string[] args)
{
    delegateProperty = delegate { return true; };
    delegateProperty = delegate(string myInput) { return true; };
    delegateProperty = new mytest(delegate(string myInput) { return true; });
    delegateProperty = (myInput) => { return true; };
    delegateProperty = myInput => { return true; };
    var delegateProperty2 = new Func<string, bool>(new mytest(delegate(string bob) { return true;}));
}

在C#中定义委托时的不同语法变化

我可以看到您错过的至少三个变体。

delegateProperty = (string myInput) => { return true; };
delegateProperty = SomeCompatibleMethod;
delegateProperty = new mytest(SomeCompatibleMethod);

来自@mikez

delegateProperty  = myInput => true;