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

C# 在C中定义委托时的不同语法变体#,c#,delegates,C#,Delegates,我在工作中做的事情没有我想做的那么多,我正在努力提高我的技能。我想出了以下定义委托的方法(尽管最后一种是欺骗)。我是否遗漏了任何语法变体 public delegate bool mytest(string input); public static mytest delegateProperty { get; set; } static void Main(string[] args) { delegateProperty = delegate { return true; };

我在工作中做的事情没有我想做的那么多,我正在努力提高我的技能。我想出了以下定义委托的方法(尽管最后一种是欺骗)。我是否遗漏了任何语法变体

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;}));
}
公共委托bool mytest(字符串输入);
公共静态mytest delegateProperty{get;set;}
静态void Main(字符串[]参数)
{
delegateProperty=delegate{return true;};
delegateProperty=委托(字符串myInput){return true;};
delegateProperty=newmytest(委托(字符串myInput){return true;});
delegateProperty=(myInput)=>{return true;};
delegateProperty=myInput=>{return true;};
var delegateProperty2=newfunc(newmytest(委托(字符串bob){return true;}));
}

我至少可以看到您遗漏的三种变体

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

delegateProperty = SomeCompatibleMethod;

delegateProperty = new mytest(SomeCompatibleMethod);
来自@mikez

delegateProperty  = myInput => true;

delegateProperty=(字符串myInput)=>{return true;}
delegateProperty=(字符串myInput)=>{return true;}@SriramSakthivel我赢了4秒:呜呜:@280Z28你在4秒之内就赢了我(我正在删除空格并添加回记号。另外,
myInput=>true;
当然,如果你有一个兼容的方法,可以说MyMethod:
delegateProperty=MyMethod;
delegateProperty=newmytest(MyMethod);