修饰符异步对此项无效
本文关键字:无效 异步 | 更新日期: 2023-09-27 18:36:50
这似乎不是数百个具有相同错误的其他问题的重复。我看过它们,发现它们无关。
我正在制作一个小笔记应用程序,并尝试从目录中读取文件。按照 MSDN 示例,我有以下代码,但它给了我一个错误:
<小时 />错误 1 修饰符"异步"对此无效 项 C:''用户''Jase''文档''视觉工作室 2012''项目''AppNameHere''AppNameHere''DataModel''AppNameHere数据源.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()
首先,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(...);
}
我认为您需要在public
之后放置async
:
public async NotesDataSource()
{
//your code here
}