修饰符异步不适用于这个项目(The modifier async is not valid for

2019-09-18 01:04发布

这似乎并非是数以百计的与同样的错误其他问题的副本。 我已经看过了所有这些,都发现他们是无关的。

我想提出一个小纸条的应用程序,我试图从目录中读取文件。 继MSDN的例子,我有以下的代码,但它给我的错误:


错误1修饰语 '异步' 是无效的这个项目C:\用户\ Jase \文件\的Visual Studio 2012 \项目\ AppNameHere \ AppNameHere \ DataModel的\ AppNameHereDataSource.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”。 可有人请帮忙吗?

谢谢!

Answer 1:

你的方法签名不正确。 看它:

async public NotesDataSource()

首先, async有前来访问修饰符IIRC

其次,无论是你想创建一个异步构造(你不能这样做),或者你正在试图写没有返回类型的方法(这是同样无效)。

尝试这个:

public async Task NotesDataSource()

那是,如果你的意思是这是一个方法。 如果要有效地创建一个异步的构造函数(或接近它),你必须使用一个异步静态方法:

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

    return new NotesDataSource(...);
}


Answer 2:

我认为你需要把async public

public async NotesDataSource() 
{
    //your code here
}


文章来源: The modifier async is not valid for this item