如何从异步操作返回字符串

本文关键字:返回 字符串 异步操作 | 更新日期: 2023-09-27 18:24:29

我正在使用PCLStorage,需要一种读取文件的方法。我将使用JSON进行序列化,所以我只需要从文件中读取保存的内容:

        public async string ReadFromFile(string filename)
        {
            IFolder rootFolder = FileSystem.Current.LocalStorage;
            IFolder folder = await rootFolder.CreateFolderAsync("MySubFolder", CreationCollisionOption.OpenIfExists);
            IFile file = await folder.GetFileAsync(filename);
            string content = await file.ReadAllTextAsync();
            return content;
        }

但我不能返回字符串,它必须是void、Task或Task。

有没有一种简单的方法可以从这个方法返回字符串?也许通过调用另一种方法?

如何从异步操作返回字符串

您需要返回一个Task<string>,如下所示:

public async Task<string> ReadFromFile(string filename)
{
    IFolder rootFolder = FileSystem.Current.LocalStorage;
    IFolder folder = await rootFolder.CreateFolderAsync("MySubFolder", 
        CreationCollisionOption.OpenIfExists);
    IFile file = await folder.GetFileAsync(filename);
    string content = await file.ReadAllTextAsync();
    return content;
}