#c# #.net
#c# #.net
Вопрос:
Допустим, я создаю API, в котором есть reduce
-метод, принимающий Func<in T, in T, out T>
. Затем это можно использовать как reduce((prev, curr) => prev curr)
. Довольно стандартно.
Но…
Мне всегда трудно запомнить — какой параметр идет первым? Накопитель или текущий элемент?
Есть ли какой-либо способ дать некоторую подсказку IDE, чтобы при появлении codecompletion он мог сообщить что-то отличное от arg1
и arg2
? Нравится синтаксис «придуманный» Func<in T as prev, in T as curr, out T>
или Func<in prev:T, in curr:T, out T>
?
Или я могу использовать некоторые специальные комментарии, которые будут подобраны при завершении кода?
Комментарии:
1. Вам не обязательно писать только
T
, вы можете назвать это как хотите, например.TPrev
,TCurr
.2. Вместо того, чтобы ожидать функцию, вы могли бы создать определение делегата и поместить его в качестве параметра в сигнатуру вашего метода. Пользователь может использовать его, предоставляя либо
Func
, либо фактически обновляя делегат (никто не должен делать этого с современными версиями C #). Дело в том, что если вы откроете скобку, вы сможете увидеть имена параметров в вашем делегате, что даст потребителю некоторое представление.3. @RandRandom но это не гарантировало бы, что TPrev будет таким же, как TCurr, хотя?