2015-12-31 19 views
7

Ben bir uygulamada bir dosya Seçici gösterir Aşağıdaki kod: derleme sırasında'Dosya Windows.Storage.StorageFile = FilePicker.PickSingleFileAsync() bekliyor' çalışmıyor

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

Ancak Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync() nedenler bu hatayı:

hata CS4036 'IAsyncOperation < StorageFile> 'GetAwaiter' ve uzatma yöntemi 'GetAwaiter' tip bir birinci bağımsız değişken kabul etmek için bir tanımlama içermez 'IAsyncOperationStorageFile>

neden oluyor'(System '? bulunamadı sizin için bir kullanarak yönergesini eksik')? Kodu MSDN'den aldım. Birisi bana yardım edebilir mi?

Not: Evrensel Windows için programlama yapıyorum.

+2

Sistem belirtildiği gibi kullanım yönergesine sahip misiniz? –

+0

"using" yönergeleriyle de bir sürü hata alırsanız, o zaman [bu gönderiyi] takip etmeyi deneyin (http://stackoverflow.com/a/34197683/2681948) - bazı projeler için bilinmeyen nedenlerden dolayı readd nuget paketi . – Romasz

cevap

23

Kullanımlarınızda System açık referansını kaçırıyorsunuz.

using System; 

Neden bu başvuru gerekiyor ve neden o görünüşte kullanılmayan bir yöntem eksik şikayet? await ile

, aslında IAsyncOperation üzerinde bir uzantısı yöntemi (beklemek üzere TaskAwaiter almak için), WindowsRuntimeSystemExtensions.GetAwaiter çağırır. WindowsRuntimeSystemExtensions, System ad alanında bulunduğundan, uzantı yöntemini almak için using'a ihtiyacınız vardır.

+0

Umarım IntelliSense, çok basit bir hatayı bu şekilde algılayabilir. – mr5

İlgili konular