我使用以下代码保存最近拍摄的图像:
private async void Button_Click_2(object sender, RoutedEventArgs e)
{
StorageFile photo =
await Windows.Storage.KnownFolders.PicturesLibrary.GetFileAsync("Image.jpg");
BitmapImage bmp = new BitmapImage();
using (IRandomAccessStream stream = await photo.OpenAsync(FileAccessMode.Read))
{
bmp.SetSource(stream);
}
img.Source = bmp;
}
IRandomAccessStream
的用途是什么?用RandomAccessStream
替换它会有什么不同?
答案 0 :(得分:4)
令人困惑,因为他们有相似的名字。它们是相关的,但并不像人们想象的那样。
RandomAccessStream是一个静态助手类。
IRandomAccessStream是所有Concreete随机访问流实现的接口,例如FileRandomAccessStream和InMemoryRandomAccessStream。
这意味着它们不可互换。您使用RandomAccessStream
执行操作,即在其他流的两个实例之间复制数据。
photo.OpenAsync
将返回FileRandomAccessStream
,但除非您需要具体类提供的特定功能,否则通常应该坚持使用接口编程IRandomAccessStream
。