2017-01-23 33 views
1

如果我刪除Tuple,只是使用Task<bool>Task<string>這是可行的。C#:使用任務<>裏面的元組

public async Tuple<Task<bool>, string> Test() 
     { 

      //.... 

      return new Tuple<Task<bool>, string>(false, "a string"); 
     } 

任何想法如何使這項工作?

回答

8

異步方法應該返回void(糟糕的做法)或TaskTask<T>(見Return Types部分)。你的情況,我相信它應該是

public async Task<Tuple<bool, string>> Test() 
{ 
    // await ... 
    return Tuple.Create(false, "a string"); 
} 
+0

@ user7399041 - 或者,如果你真的想返回一個元組',字符串>',只是刪除了'async'修改,並通過一個實際的'Task'到第一'Tuple'構造函數的參數。 – sellotape

+0

@sellotape是的,如果方法不是異步的,那麼你可以返回'Tuple'。但OP會嘗試用'false'創建一個字符串「''。這就是爲什麼我認爲他真的想從異步方法返回元組:)。 –

+3

同意。在這種情況下,他可以返回'Task.FromResult(false)',但我認爲這只是一個沒有真正代碼的非常簡單的例子。對他而言,他真的想做什麼...... – sellotape