Однако кажется, что я могу вернуть анонимный метод без параметров (делегат {}) без каких-либо ошибок компилятора.
Вот минимальный пример:
Код: Выделить всё
using System;
public class Program
{
public static Action GetEmptyAction()
{
// Why is this line valid?
// 'delegate {}' has no parameters, but Action expects one.
return delegate { };
}
}
Какое правило или функция языка C# позволяет назначать метод с меньшим количеством параметров (в данном случае нулем) типу делегата, который ожидает больше параметров?
Я видел лямбда-выражение _ => {}, используемое для этого, что делает более ясным, что параметр игнорируется. Работает ли синтаксис делегата {} на основе того же принципа совместимости делегатов?
Подробнее здесь: https://stackoverflow.com/questions/798 ... actiont-th
Мобильная версия