【问题标题】:Delegate Instantiate and Invoke Syntax委托实例化和调用语法
【发布时间】:2014-01-24 19:59:19
【问题描述】:

回到基础 - 对代表的语法糖有点困惑。这是我的场景:

我有一个接受零参数并返回 void 的委托。本质上是一个零参数的动作委托。 下面的代码 sn-p(有意使用基本委托语法与 Action Delegate 用法)

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 表达式编写等效的动作委托。我知道的。即使在那里,我仍然需要调用委托 d()。 我的问题与我如何组合 2 个语句有关(无论使用何种语法 - 基本委托、动作委托)

【问题讨论】:

  • 你为什么要这样做?
  • 休闲裤 - 如上所述 - 这更像是一个奇怪的问题 - 如果我可以使用返回类型来做到这一点 - 为什么没有可用的东西 - 至少我不知道 - 对于零值回报

标签: c#


【解决方案1】:
new SomeDelegate(SomeMethod)(SomeParameter);

【讨论】:

  • new Del(MethodCalled)(); 使用 OP 示例中的名称。
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多