Присвоение имен параметрам в делегатах generic Func

#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, хотя?