Estou assumindo um aplicativo C# baseado em Prism que contém algumas linhas simples lambda, como as seguintes:
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();
}
});
Eu gostaria de programar de uma forma mais limpa, com isso quero dizer que só quero colocar uma única ação em uma única linha, mas não consigo fazer isso (qual é a assinatura de , como usá-la para some_Method
definir uma ação, ...?)
Isto é o que tenho até agora:
public ... some_Method(...)
{
Confirmation conf = (Confirmation)c;
if (conf.Confirmed)
{
DoSomething();
}
}
Action actionToPerform = new Action(some_Method);
OwnObjectRequest.Raise(confirmation, actionToPerform);
Alguém sabe como escrever isso?
Não creio que haja qualquer vantagem técnica em escrever uma linha única em formato multilinha, mas isso me ajudaria muito a entender como ler, entender e talvez dar suporte a esse código-fonte.
Não tenho certeza se entendi corretamente ou não, mas você pode definir um método separado ou usar uma expressão lambda diretamente
então, por exemplo, se você quiser mtehod separado:
e então, você pode usar este método como a ação a ser gerada:
ou usando uma expressão lambda