Здравствуйте, _NN_, Вы писали:
_NN>Как обычно документируются Action/Func<Type1,Type2..> ?
Никак. Используем стандартные делегаты.
Если речь про комментарии к делегатам-параметрам, то код пишется так, чтобы сценарий использования был понятен из сигнатуры + имени параметра. Если непонятно — или код переписывается, или заводится интерфейс.
Например:
bool TryDoInTransaction(Func<bool> tryDoCallback);
void Bind(IDateEdit control, Func<T, DateTime?> getDateCallback, Action<T, DateTime?> setDateCallback);
void OnPropertyChange(Expression<<Func<T, TProp>> propertyGetter, Action<T> propertyChangedCallback);
Комментарии пишем, куда же без них, но они ни при каких условиях не должны быть первичным источником информации об API.