ti-enxame.com

Significado de () => Operador em C #, se existir

Eu li esta linha interessante aqui , em uma resposta de Jon Skeet.

A linha interessante é esta, onde ele defendeu o uso de um delegado:

Log.Info("I did something: {0}", () => action.GenerateDescription());

A questão é: o que é esse operador () =>, gostaria de saber? Eu tentei pesquisar no Google, mas como ele é feito de símbolos, o Google não poderia ser de muita ajuda. Perdi embaraçosamente algo aqui?

39
Orca

Isso introduz uma função lambda (delegado anônimo) sem parâmetros, é equivalente e basicamente abreviado para:

delegate void () { return action.GenerateDescription(); }

Você também pode adicionar parâmetros, portanto:

(a, b) => a + b

Isso é aproximadamente equivalente a:

delegate int (int a, int b) { return a + b; }
55
Simon Steele

=> este é um operador lambda. Quando não temos parâmetros de entrada, apenas usamos colchetes () antes do operador lambda.

sintaxe: (input parameters) => expression

8
htr

Este é um exemplo de uma expressão lambda que você pode aprender mais aqui .

3
Jake Pearson

Criando um delegado anônimo para o método especificado.

Provavelmente, no seu caso, será um Func<string>

2
abatishchev

É uma maneira de passar delegado anônimo sem parâmetros como expressão lambda.

Semelhante a este do .NET 2.0

Log.Info("I did something: {0}", delegate()
            {
                return action.GenerateDescription();
            });
1
PiRX