2014-02-05 1 views
5

Все, что я хочу использовать ключевое слово Out с моей функцией Async. Согласно MSDN, невозможно, чтобы модификаторы Async не поддерживали ключевое слово out. Итак, есть ли альтернатива в .Net framework 4.5/4.0?Какова замена ключевого слова Out для методов Async в .NET 4.5 и 4.0?

+0

это может помочь: http://msdn.microsoft.com/en-us/library/hh156513.aspx –

ответ

6

Вы можете объявить функцию async для возврата Tuple. При этом функция все еще способна возвращать несколько значений без использования параметра out.

public async Task<Tuple<string, int, bool>>SomeFunctionAsync() 
{ 
    return new Tuple<string, int, bool>("foo", 0, false); 
} 

Справочно:

UPDATE:

вы можете использовать более короткий синтаксис, предложенный @svick в комментарии. После функция возвращает то же значение, но с использованием Tuple.Create:

public async Task<Tuple<string, int, bool>>SomeFunctionAsync() 
{ 
    return Tuple.Create("foo", 0, false); 
} 
+5

BTW, 'Tuple.Create()' часто короче, чем 'new Tuple()', потому что вы можете использовать вывод типа с ним. – svick

Смежные вопросы