別の非同期関数を呼び出す関数から文字列を返したいとします。これが可能かどうか教えていただけますか? これは私が唯一のトークン値を返すようにしたい私の機能C#、別の非同期関数を呼び出す関数から文字列を返しますか?
public async Task<TokenCredential> LoginAsync()
{
var credential = await GenerateCredentialAsync(); // This is a library function
//that returns a 'Task<TokenCredential>'
return credential.Token; // I want to return this value which is a string
}
です。しかし、私は戻り値の型を変更します。私は「のawait演算子は非同期メソッド内でのみ使用することができ、」コンパイルエラーに
を
を取得します。
私が削除した場合、以下のように完全に待っています:
public string LoginAsync() { var credential = GenerateCredentialAsync(); return credential.Token; }
「間接参照credential.tokenにタスク< TokenCredential>トークンの定義が含まれていませんが
をしようとしたとき、私はこのエラーを取得します。
助けてもらえますか?
コードで匿名のクラスは見つかりません。とにかく、なぜあなたがそれらを望むのかは明らかではありません。いずれにしても、匿名クラスを扱うための「通常のトリック」はジェネリックです。 –
どのようなタイプの 'トークン'ですか? 'Taskの代わりに'非同期タスク 'を返すと、最初のバージョンが動作します。 –
あなたのメソッドは 'async'とマークされていますが、' await'を使うことでエラーが発生すると言っていますが、上記の匿名クラスやコードもありません。 – ColinM