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

时间:2014-08-26 19:43:07

标签: c# delegates

我不会像工作中那样做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;}));
}

1 个答案:

答案 0 :(得分:0)

我可以看到你错过的至少三种变体。

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

delegateProperty = SomeCompatibleMethod;

delegateProperty = new mytest(SomeCompatibleMethod);

来自@ mikez

delegateProperty  = myInput => true;