加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 修饰符async对此项无效

发布时间:2020-12-16 00:20:22 所属栏目:百科 来源:网络整理
导读:这似乎与具有相同错误的数百个其他问题重复.我看了他们所有人,发现他们是无关的. 我正在制作一个小笔记应用程序,我正在尝试从目录中读取文件.在MSDN示例之后,我有以下代码,但它给出了一个错误: Error 1 The modifier ‘async’ is not valid for this item
这似乎与具有相同错误的数百个其他问题重复.我看了他们所有人,发现他们是无关的.

我正在制作一个小笔记应用程序,我正在尝试从目录中读取文件.在MSDN示例之后,我有以下代码,但它给出了一个错误:

Error 1 The modifier ‘async’ is not valid for this
item C:UsersJasedocumentsvisual studio
2012ProjectsAppNameHereAppNameHereDataModelAppNameHereDataSource.cs 192 9 AppNameHere

我的代码是:

async public NotesDataSource()
    {
        StorageFolder documentsFolder = KnownFolders.DocumentsLibrary;
        StringBuilder outputText = new StringBuilder();

        IReadOnlyList<StorageFile> fileList =
            await documentsFolder.GetFilesAsync();
        outputText.AppendLine("Files:");

        foreach (StorageFile file in fileList)
        {
            if (file.FileType == "txt")
            {
                outputText.Append(file.Name + "n");
            }
        }
        // lots of irrelevant code removed.
    }

我不明白这里发生了什么.我跟着一切都是“T”.有人可以帮忙吗?

谢谢!

解决方法

您的方法签名不正确.看它:

async public NotesDataSource()

首先,异步必须在访问修饰符IIRC之后.

其次,您要么尝试创建异步构造函数(您不能这样做),要么尝试编写没有返回类型的方法(同样无效).

试试这个:

public async Task NotesDataSource()

如果你认为它是一种方法就是这样.如果要有效地创建异步构造函数(或接近它的东西),则必须使用异步静态方法:

public static async Task<NotesDataSource> CreateInstance()
{
    // Do async stuff here which fetches all the necessary data...

    return new NotesDataSource(...);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读