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替换它会有什么不同?

IRandomAccessStream和RandomAccessStream的区别是什么?

这是令人困惑的,因为他们有相似的名字。它们是有联系的,但不是以人们想象的那种方式。

RandomAccessStream是一个静态帮助类。

IRandomAccessStream是一个接口,所有具体的随机访问流实现,如FileRandomAccessStream和InMemoryRandomAccessStream。

这意味着它们是不可互换的。您使用RandomAccessStream来执行操作,即在其他流的两个实例之间复制数据。

photo.OpenAsync将返回FileRandomAccessStream,但除非您需要具体类提供的特定功能,否则您通常应该坚持针对接口IRandomAccessStream进行编程。