'Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()'不工作

The*_*heo 9 c# xaml compiler-errors win-universal-app

我有以下代码,在应用程序中显示文件选择器:

var FilePicker = new Windows.Storage.Pickers.FileOpenPicker();
FilePicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
FilePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder;
FilePicker.FileTypeFilter.Add(".pcs");
FilePicker.FileTypeFilter.Add(".pcp");

Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync();
Run Code Online (Sandbox Code Playgroud)

但是,Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()在编译期间会导致此错误:

错误CS4036'IAsyncOperation <StorageFile>'不包含'GetAwaiter'的定义,并且没有可以找到接受第一个类型为'IAsyncOperation <StorageFile>'的扩展方法'GetAwaiter'(您是否缺少'System'的using指令?)

为什么会这样?我从MSDN获得了代码.有人可以帮帮我吗?

注意:我正在为通用Windows编程.

Pat*_*man 27

您在使用中缺少明显的参考System.

using System;
Run Code Online (Sandbox Code Playgroud)

为什么你需要这个参考,为什么它抱怨它缺少一个看似未使用的方法?

随着await,它实际上调用WindowsRuntimeSystemExtensions.GetAwaiter,通过一个扩展方法IAsyncOperation(获得TaskAwaiter等待).由于WindowsRuntimeSystemExtensions驻留在System命名空间中,因此需要使用它using来获取扩展方法.