gpt4 book ai didi

c# - 自动处理在函数调用中创建的对象

转载 作者:行者123 更新时间:2023-11-30 15:41:26 25 4
gpt4 key购买 nike

我在一个类中有一系列 Read() 重载。每个打开文件的时间都只够阅读,所以我有:

public void Read(blah)
{
using (FileStream stream = new FileStream(Path, FileMode.Open, FileAccess.Read))
using (BinaryReader reader = new BinaryReader(stream))
{
//read some stuff
}
}

public void Read(blah blah)
{
using (FileStream stream = new FileStream(Path, FileMode.Open, FileAccess.Read))
using (BinaryReader reader = new BinaryReader(stream))
{
//read some different stuff
}
}

有没有什么方法可以将流和读取器创建包装在一个函数中,同时仍然保留 using() 来自动处理所有内容?例如

public void Read(blah)
{
using (var reader = GetReader())
{
//read some stuff
}
}

public void Read(blah blah)
{
using (var reader = GetReader())
{
//read some different stuff
}
}

private BinaryReader GetReader()
{
//How do I dispose this stream?
FileStream stream = new FileStream(Path, FileMode.Open, FileAccess.Read))

return new BinaryReader(stream);
}

最佳答案

在这种特定情况下,您不必处置您的流。处置后,BinaryReader 将自动处置基础流。

但也许 BinaryReader 只是一个例子?

关于c# - 自动处理在函数调用中创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344701/

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