IRandomAccessStream和RandomAccessStream的区别是什么?
本文关键字:是什么 区别 RandomAccessStream IRandomAccessStream | 更新日期: 2023-09-27 18:06:04
我使用以下代码保存最近拍摄的图像:
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
替换它会有什么不同?
这是令人困惑的,因为他们有相似的名字。它们是有联系的,但不是以人们想象的那种方式。
RandomAccessStream是一个静态帮助类。
IRandomAccessStream是一个接口,所有具体的随机访问流实现,如FileRandomAccessStream和InMemoryRandomAccessStream。
这意味着它们是不可互换的。您使用RandomAccessStream
来执行操作,即在其他流的两个实例之间复制数据。
photo.OpenAsync
将返回FileRandomAccessStream
,但除非您需要具体类提供的特定功能,否则您通常应该坚持针对接口IRandomAccessStream
进行编程。