Я вижу, что лямбда-выражения стали очень полезным инструментом в некоторых точках языка. Я использую их много, и большую часть времени они подходят очень красиво и делают код короче и, возможно, более ясным.Когда использовать или нет Лямбда-выражения
Теперь .. Я видел некоторых, я бы сказал, чрезмерное использование их. Некоторым людям нравится их так много, что пытаются использовать их везде, где они могут. Иногда код C# выглядит как функциональный язык.
Другие факторы, влияющие на стоимость, отражают энергию лямбда и не относятся к отладке.
Хотелось бы услышать мнение о том, насколько хорошо и как ясно код, чтобы использовать более или менее выражения лямбда.
(это не лучший пример, но допустим, что это триггер)
Я пишу следующий код. Использование delegate { return null; }
помогает мне избежать необходимости спрашивать, является ли событие нулевым или не каждый раз, когда я должен его использовать.
public delegate ContactCellInfo.Guest AddGuest();
public event AddGuest GuestRequest = delegate { return null;}
Im помощью ReSharper и мудрого ReSharper (даже несколько раз literaly ест память) сделал мне следующее предложение
public delegate ContactCellInfo.Guest AddGuest();
public event AddGuest GuestRequest =() => null;
В моей точки зрения кода с помощью делегата выглядит более четким. Я не против выражения Lamdba, просто хотел бы услышать некоторые советы о том, как и когда их использовать.
Только совет: вам не нужно возвращать null от вашего делегата. Пустой делегат будет работать отлично. –
«стоимость используя отражение лямбда»: бесплатно. Лямбда в вашем коде * точно * эквивалентна анонимному методу. (Lambdas также может использоваться как выражение в смысле LINQ, но в этом случае нет смысла сравнивать, потому что анонимные методы не могут использоваться в качестве выражений.) – itowlson
Я использую пустой делегат, но в этом случае он дает ошибку " Не все пути кода возвращают значение в анонимном методе ... » – jmayor