Это зависит от нескольких вещей.
Если делегат будет использоваться как событие, его всегда следует называть EventHandler
подтипом, например:
public delegate void ValueExtractingEventHandler(object sender,
ValueExtractingEventArgs e);
Если это не событие, то MS кодирования руководящих принципов (которые я никогда не могу показаться , чтобы найти правильную копию на Google) явно рекомендовать против включая такие слова , как «делегат» или «обработчик» во имени делегата, за исключением того, в частном случае EventHandler
типы.
Обычно делегаты должны быть названы в честь действий , например ValueExtracting
(если делегат происходит до извлечения значения) или ValueExtracted
(после извлечения).
Func<T1, T2, ..., TResult>
Синтаксис делегат также становится все более распространенным, но если у вас есть 4 или более параметров , идущие в нее, вам не нужно объявлять свои собственные вообще - просто использовать существующий:
object ExtractObject(object source, Func<object, object> extractor);
Этот синтаксис лучше всего подходит, когда делегат используется как закрытие . Сам делегат не имеет очень интересного имени, но аргумент - это существительное агента (экстрактор, поставщик, оценщик, селектор и т. Д.)
Большинство случаев использования делегата попадает в одну из вышеперечисленных категорий, поэтому выясните, для какой из них он используется, и выберите соответствующий вариант.