Arr*_*row 3 .net c# io microsoft-metro windows-8
这似乎与具有相同错误的数百个其他问题重复.我看了他们所有人,发现他们是无关的.
我正在制作一个小笔记应用程序,我正在尝试从目录中读取文件.在MSDN示例之后,我有以下代码,但它给出了一个错误:
错误1修饰符'async'对此项目无效C:\ Users\Jase\documents\visual studio 2012\Projects\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.
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Jon*_*eet 12
您的方法签名不正确.看它:
async public NotesDataSource()
Run Code Online (Sandbox Code Playgroud)
首先,async有来后访问修饰符IIRC.
其次,您要么尝试创建异步构造函数(您不能这样做),要么尝试编写没有返回类型的方法(同样无效).
试试这个:
public async Task NotesDataSource()
Run Code Online (Sandbox Code Playgroud)
如果你认为它是一种方法,那就是这样.如果要有效地创建异步构造函数(或接近它的东西),则必须使用异步静态方法:
public static async Task<NotesDataSource> CreateInstance()
{
// Do async stuff here which fetches all the necessary data...
return new NotesDataSource(...);
}
Run Code Online (Sandbox Code Playgroud)