方法构造函数中的表达式主体

时间:2019-03-29 14:42:59

标签: c#

这很可能不是它的名字-我根本不知道它的名字是什么...

所以最近,我正在从事的项目让我开始思考(我之前在某处也看到过)如何实现以下设计。

这看起来像是一个表达体,但对于我的一生,我无法让它以某种方式起作用。

基本上我想要实现的是编写以下内容(在剃须刀上应该有所作为):

@(
    AIHelper.CreateQuickForm<LoginModel>(formId: "myCustomId", formMethod: FormMethod.Post)
    .HtmlAttributes(new { @class = "another damn class" })
     .ShowSubmit()
     .On(x => { x.OnSubmit("onFormSubmit"); e.OnCancel("onFormCancel"); })
)

现在-我的问题是如何实现.On部分。

.On(x => { x.OnSubmit("onFormSubmit"); e.OnCancel("onFormCancel"); })

我尝试使用:

public QuickFormEvents On(Func<QuickFormEvents> expr)
{
    return _Events;
}

我在哪里找不到我想要的东西。

我确实定义了一个类,应该将其“注入”(我们甚至可以称呼它)到名为QuickFormEvents的表达式主体中。

任何朝着正确方向的指针都会得到体现。

1 个答案:

答案 0 :(得分:4)

您的On方法应采用Action<Something>,而不是Func。它需要一个参数,但不返回任何内容。

您可能想要类似的东西:

public Something On(Action<SomethingElse> action)
{
    // store or invoke 'action', passing something as appropriate
    return this; // return this to allow chaining
}