У меня есть такой код:Дать краткое имя Func <Type1, Type2> последовательности в C#
private Func<Request, Response, byte[], string, string, Task> _started;
private Func<Request, Response, byte[], string, string, Task> _progress;
private Func<Request, Response, byte[], string, string, Task> _completed;
private Func<Request, Response, byte[], string, string, Task> _errorOccurred;
private Func<Request, Response, byte[], string, string, Task> _cancelled;
Я бы лучше иметь что-то вроде:
typedef Func<Request, Response, byte[], string, string, Task> StatusUpdateAsyncCallback; // in C++ way.
private StatusUpdateAsyncCallback _started;
// and so on.
не могу понять, как сделать это с помощью Func. Я привык к делегатам (где у меня не было этой проблемы, так как я могу дать уникальное имя любому делегату), но теперь не могу понять, как повторить то же самое для объявлений Func.
Я перехожу от простого объявления типа делегата, такого как delegate Task StatusUpdateAsyncCallback(Request req, Response resp, byte[] data, string account, string alias)
, потому что теперь я буду полагаться на некоторые специфичные для Func способности (например, можно создать метод расширения, который будет работать для всех видов делегатов Func с определенное количество параметров, тогда как «классические» типы делегатов несовместимы таким образом). Если нужно больше информации по этому вопросу можно найти в @ Mant101 объяснений на How to write extension method which will make invocation list members in multicast C# delegate run sequentially?
Да, я действительно пытался это сделать, но это никогда не получилось. После вашего предложения я попробовал еще раз, но все еще получаю: «Тип или пространство имен Func не удалось найти». Я также пытался с меньшим количеством параметров (например, 'using StatusUpdateAsyncCallback = Func;'). Но, о мой господин, я наконец-то работал, получается полное имя типа System.Func всегда необходимо, использование System в начале источника недостаточно. –
Alex
@ Алиасы типа Alex всегда требуют полнотелых имен типов. Они не зависят от других приемов, которые могут присутствовать. – Kyle