Разница между Func <> с делегатом и лямбда-выражением [duplicate]

На этот вопрос уже есть ответ:

delegate ключевое слово против лямбда-нотации 6 ответов

, углубляясь в более продвинутые возможности C #, я наткнулся на некоторый код, в котором я точно не знал разницы. Речь идет об этих двух строках:

Func<string, int> giveLength = (text => text.Length);

а такж

Func<string, int> giveLength = delegate(string text) { return text.Length; };

Это можно использовать таким же образом:

Console.WriteLine(giveLength("A random string."));

Так в основном .. В чем разница между этими двумя строками? И эти строки компилируются в один и тот же CIL?

Ответы на вопрос(2)

Ваш ответ на вопрос