gpt4 book ai didi

c# - 在处理 : Does my code have bugs? 时将类保存到磁盘

转载 作者:行者123 更新时间:2023-11-30 18:57:49 25 4
gpt4 key购买 nike

我正在尝试制作一个简单的类,当它不再使用时将其自身序列化到磁盘。我现在拥有的代码(见下文)。我现在拥有的代码似乎可以工作,但我对自己的知识并不完全有信心,所以我想知道是否有其他人发现此代码有任何重大问题。

void IDisposable.Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

~MyClass()
{
Dispose(false);
}

protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, this);
byte[] output = Dostuff(ms);
File.WriteAllBytes(DBPATH, output);
}
this.disposed = true;
}

最佳答案

这可能会奏效 - 但我不会这样做。通过这样做,您可能会在终结线程中执行具有潜在危险的代码。如果出了什么问题,你的状态就会很糟糕......

Dispose 除了处理您的资源之外什么都不做。我强烈建议将其移动到另一个方法,并使其成为对象 API 的一部分,而不是依赖 IDisposable 来为您处理。

关于c# - 在处理 : Does my code have bugs? 时将类保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832911/

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