2014-01-24 94 views
0

回到基础 - 对代表的语法糖有点困惑。这是我的场景:委托实例化和调用语法

我有一个委托,它将零参数和返回void。实质上是一个带有零参数的Action委托。我怎么能结合实例化和调用呼叫一句话(对于没有回报的代表)与下图类似(用例:下面(故意使用基本的委托语法与动作代表使用)

class Program 
{ 
    public delegate void Del(); // Declare 
    static void Main(string[] args) 
    { 
     Del d = MethodCalled; //Instantiate 
     d(); //Invoke 

     Console.ReadLine(); 
    } 

    public static void MethodCalled() 
    { 
     Console.WriteLine("Hello"); 
    } 
} 

问题的代码段在那里我有一个返回值从代表未来:

//Instantiate & Invoke Delegate 
string handler = MethodCalled("Hello"); 

请注意 - 这个问题不是如何使用匿名方法或的Lamda表达式写一个Action委托相当于这我知道,即使在那里,我仍然有。要调用委托d()。 我的问题是更关系到如何合并报表2(无论所使用的语法 - 基本的委托,Action委托)

+0

为什么你想这样做呢? – SLaks

+0

休闲裤 - 如上所述 - 这是一个更好奇的问题 - 如果我可以用返回类型做 - 当为什么没有可用 - 至少我不知道 - 为零值返回 – Patrick

回答

4
new SomeDelegate(SomeMethod)(SomeParameter); 
+1

或'new Del(MethodCalled) ();'在OP的例子中使用这些名字。 –