';Windows.Storage.StorageFile File=await FilePicker.PickS

本文关键字:await FilePicker PickS File StorageFile Windows Storage | 更新日期: 2023-09-27 18:28:38

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

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();

但是,Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()在编译过程中导致此错误:

错误CS4036‘IAsyncOperation<StorageFile>'不包含"GetAwaiter"的定义,没有扩展方法"GetAwaite"接受类型为"IAsyncOperation<StorageFile>'可以找到(您是否缺少"系统"的使用指令?)

为什么会发生这种情况?我从MSDN获得了代码。有人能帮帮我吗?

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

';Windows.Storage.StorageFile File=await FilePicker.PickS

您在using中缺少对System的明显引用。

using System;

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

使用await,它实际上调用了WindowsRuntimeSystemExtensions.GetAwaiter,这是IAsyncOperation上的一个扩展方法(以使TaskAwaiter等待)。由于WindowsRuntimeSystemExtensions位于System命名空间中,因此需要该using来获取扩展方法。