Конструктор по умолчанию создается, если вы не определяете каких-либо конструкторов в своем классе. Это просто конструктор без аргументов, который ничего не делает. Изменить: кроме вызова super ()
public Module(){
}
страница MSDN на анонимных методах объясняет его
В версиях C# прежде 2.0, единственный способ объявить, что делегат должен был использовать названные методы. C# 2.0 представил анонимные методы и в C# 3.0 и позже, лямбда-выражения заменяют анонимные методы как предпочтительный способ записать встроенный код. Однако информация об анонимных методах в этой теме также относится к лямбда-выражениям. Существует один случай, в котором анонимный метод обеспечивает функциональность, не найденную в лямбда-выражениях. Анонимные методы позволяют Вам опустить список параметров, и это означает, что анонимный метод может быть преобразован в делегатов со множеством подписей. Это не возможно с лямбда-выражениями. Для получения дополнительной информации конкретно о лямбда-выражениях, посмотрите Лямбда-выражения (Руководство по программированию C#).
И относительно лямбда-выражений :
лямбда-выражение А является анонимной функцией, которая может содержать выражения и операторы, и может использоваться для создания типов дерева выражений или делегатов. Все лямбда-выражения используют оператор лямбды =>, который читается, поскольку "переходит в". Левая сторона оператора лямбды определяет входные параметры (если таковые имеются), и правая сторона содержит выражение или блок операторов. Лямбда-выражение x => x * x читается "x, переходит к x временам, x." Этих выражений могут быть присвоены типу делегата следующим образом:
, последняя точка является единственным преимуществом анонимных методов по лямбдам, я верю. Полезно создать подобное полю событие ни с какой-op подпиской хотя:
public event EventHandler Click = delegate{};
Во-первых, удобство: лямбды легче читать и записать.
118-секундный, выражения: лямбды могут быть скомпилированы в или делегат, или дерево выражений (Expression<T>
для некоторого типа делегата T, такой как Func<int,bool>
). Деревья выражений являются более захватывающим, поскольку это - ключ к LINQ к хранилищам данных из процесса.
Func<int,bool> isEven = i => i % 2 == 0;
Expression<Func<int,bool>> isEven = i => i % 2 == 0;
Примечание, что лямбда-выражения с телами оператора могут только быть скомпилированы в делегатов, не Expression
с:
Action a = () => { Console.WriteLine(obj.ToString()); };
диапазон более или менее тонких различий объяснены Eric Lippert (разработчик языка C#) в его блоге: