Как обычно документируются Action/Func<Type1,Type2..> ?
В случае с делегатами у нас есть возможность:
/// <summary>
/// MyDelegate
/// </summary>
/// <param name="a">A</param>
/// <param name="b">B</param>
public delegate void MyDelegate(int a, int b);
А вот с Action/Func передаётся только тип без имени.
// Что означает 'int' ?
public void F(Action<int, int> action) { }
// Так было бы лучше но нельзя
public void F(Action<int a, int b> action) { }
Может через XML комментарий можно как-то выделить, что-то в стиле:
<param name="action"><type index="0">A</type> <type index="1"B</type> </param>
Здравствуйте, _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.