Документирование Action и Func
От: _NN_  
Дата: 01.12.15 10:14
Оценка: +1
Как обычно документируются 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>
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Документирование Action и Func
От: Sinix  
Дата: 01.12.15 10:33
Оценка: +2
Здравствуйте, _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.
Отредактировано 01.12.2015 10:33 Sinix . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.