- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
596 :デフォルトの名無しさん (ワッチョイ 8185-MXHb)[sage]:2016/09/14(水) 17:20:03.55 ID:DRF/iRYF0 - あるインターフェースの非同期メソッドを別の非同期メソッドを使って実装しなければいけないのですが、
どうすればいいでしょうか。GetXXXAsyncが実装しなければいけない非同期メソッドで 別のクラスのインスタンスyyyのGetYYYAsyncで実装しなければいけません。 XXXの結果はYYYに変換できるものとします。 public Task<XXX> GetXXXAsync() { yyy.GetYYYAsync(t => { var yyy = t.result // XXXをYYYに変換 return ???? } }
|
- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
598 :デフォルトの名無しさん (ワッチョイ 8185-MXHb)[sage]:2016/09/14(水) 17:23:00.56 ID:DRF/iRYF0 - それとも、awaiを使うんでしょうか?
public async Task<XXX> GetXXXAsync() { var yyy = await yyy.GetYYYAsync(); return ConvertToXXX(yyy); // YYYをXXXに変換 } もちろん、上のコードではreturn文の型が違うのでコンパイルできませんが。
|
- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
599 :デフォルトの名無しさん (ワッチョイ 8185-MXHb)[sage]:2016/09/14(水) 17:24:07.03 ID:DRF/iRYF0 - >>596の
>var yyy = t.result // XXXをYYYに変換 は間違いいですね。YYYをXXXに変換するのでした。
|
- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
600 :デフォルトの名無しさん (ワッチョイ 8185-MXHb)[sage]:2016/09/14(水) 17:27:27.84 ID:DRF/iRYF0 - 変数名とかかぶtってたりポカやってますが。すみません。
var zzz = await yyy.GetYYYAsync(); zzzとかにします。
|
- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
605 :デフォルトの名無しさん (ワッチョイ 8185-MXHb)[sage]:2016/09/14(水) 18:47:20.85 ID:DRF/iRYF0 - >>602
まず、実装するのはUWPですがISupportIncrementalLoading.LoadMoreItemsAsyncです。 https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.data.isupportincrementalloading.aspx で、要はその実装の内部で、HttpClient.SendAsync()を呼んで、 レスポンスを加工して、LoadMoreItemsAysncの戻り値のIAsyncOperation<LoadMoreItemsResult> に したいわけです。
|