gpt4 book ai didi

c# - 使用 - 我的流发生了什么?

转载 作者:太空狗 更新时间:2023-10-30 01:19:47 25 4
gpt4 key购买 nike

也许这是一个微不足道的问题,但它困扰着我。如果它是重复的,请不要大声赞美 - 我尝试搜索,但关于使用的问题太多了,我很难找到答案。

我有这样的代码:

using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication())
using (StreamWriter writeFile = new StreamWriter(new IsolatedStorageFileStream("example.txt", FileMode.Create, ISF)))
writeFile.WriteLine("Example");

我的问题是:当 StreamWriter 被释放并离开使用时,我创建的 IsolatedStorageFileStream 会发生什么?也会被淘汰吗?

与这段代码相比有什么不同吗:

using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication())
using (IsolatedStorageFileStream stream = ISF.CreateFile("example.txt"))
using (StreamWriter writeFile = new StreamWriter(stream))
writeFile.WriteLine("Example");

提前致谢。

最佳答案

你有一个 constructor for StreamWriter (仅限 NET Framework 4.5)允许指定 leaveOpen bool 值,该 bool 值定义您的实例是否取得基础流的所有权。

如果未指定(如您的示例或框架的先前版本),默认情况下为 false,因此关闭(或处置)实例会关闭基础流。

Unless you set the leaveOpen parameter to true, the StreamWriter object calls Dispose() on the provided Stream object when StreamWriter.Dispose is called.

因此,您提供的两段代码没有区别

关于c# - 使用 - 我的流发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com