在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;}));
}
我可以看到您错过的至少三个变体。
delegateProperty = (string myInput) => { return true; };
delegateProperty = SomeCompatibleMethod;
delegateProperty = new mytest(SomeCompatibleMethod);
来自@mikez
delegateProperty = myInput => true;