我正在接管一个基于 Prism 的 C# 应用程序,其中包含相当多的 lambda 风格的单行代码,如下所示:
using Prism.Interactivity.InteractionRequest;
...
public InteractionRequest<Confirmation> OwnObjectRequest { get; } = new InteractionRequest<Confirmation>();
...
OwnObjectRequest.Raise(confirmation, c => // one-liner
{
Confirmation conf = (Confirmation)c;
if (conf.Confirmed)
{
DoSomething();
}
});
我想以一种更清晰的方式进行编程,这意味着我只想将一个操作放在一行上,但我没有完成它( 的签名是什么,如何使用它来some_Method
定义一个动作,...?)
这是我到目前为止所拥有的:
public ... some_Method(...)
{
Confirmation conf = (Confirmation)c;
if (conf.Confirmed)
{
DoSomething();
}
}
Action actionToPerform = new Action(some_Method);
OwnObjectRequest.Raise(confirmation, actionToPerform);
有人知道这个怎么写吗?
我不认为以多行格式编写这样的单行代码有任何技术优势,但它将极大地帮助我了解如何阅读、理解并可能为该源代码提供支持。
我不确定我理解是否正确,但是你可以定义一个单独的方法或直接使用 lambda 表达式
例如,如果您想要单独的 mtehod :
然后,您可以使用此方法作为要引发的操作:
或使用 lambda 表达式