1

ファイルのリストを返す関数を作成しようとしています。ソースコードは次のとおりです。

public async IReadOnlyList<StorageFile> GetFiles()
    {
        StorageFolder folder = await KnownFolders.PicturesLibrary.GetFolderAsync("folder N1");
        if (folder != null)
        {
            IReadOnlyList<StorageFile> fList = await folder.GetFilesAsync();
            return fList;
        }
    }

しかし、なぜそれは仕事ではないのですか?エラー メッセージは、「IReadOnlyList を StorageFile に変換できません」です。どうしたの?私の fList 変数は、関数のヘッダーと同じ型です。

4

3 に答える 3

3

非同期メソッドは を返すTask<T>ので、関数を次のように変更します。

public async Task<IReadOnlyList<StorageFile>> GetFiles()
{
    StorageFolder folder = await KnownFolders.PicturesLibrary.GetFolderAsync("folder N1");
    if (folder != null)
         return await folder.GetFilesAsync();
    else
         return null;
}

GetFilesAsync が機能しなくなる

于 2013-04-17T17:24:14.110 に答える
2

@Xyroid が言ったように、async メソッドの戻り値の型は void、Task、または Task でなければならないため、Task> を戻り値の型として使用する必要があります。コード@Xyroidが投稿されました。次のようなファイルを取得できます。

IReadOnlyList<StorageFile> fileList = await GetFiles();
int count = fileList.Count;
于 2013-04-18T02:37:18.173 に答える