gpt4 book ai didi

.net - 我应该安排一名字符串作家吗?或以某种方式重复使用?

转载 作者:行者123 更新时间:2023-12-04 09:56:44 25 4
gpt4 key购买 nike

我将使其简单化。我有一个字符串编写器作为类成员,因此我不能使用using()。每当我调用某个函数时,我都希望有一个空的sw。我应该在sw上调用Dispose()并分配一个新对象吗?还是我应该做类似.close()的事情,并做其他事情来清空缓冲区?

最佳答案

我同意其他答复者的意见,即您应该查看设计,看看是否有真正的方法是使用类级字符串编写器。

但是,我不同意这一点。

"All it does is call back into the base class' (TextWriter) Dispose -- which does nothing."



使用类时,如果类型实现 Dispose,则您确实应该显式地或使用“using”来调用它。

在这种情况下,确实是 StringWriter.Dispose调用了 TextWriter.Dispose而不执行任何操作,但是我真的不建议“只是忽略它”。

继承和多态的全部要点是可以将这种类型换成派生类型。

您代码中的今天 StringWriter可能会被替换为明天的 EvenBetterStringWriter,而后者的 Dispose可能会更有意义。

如果它实现了 Dispose,并且使用了它,那么您应该认真考虑完成后调用dispose。

当您让这种特定的具体实现的内部指导您这样的设计时,这是很危险的。 StringWriter类的作者显然是打算调用Dispose的,否则就不会出现。

关于.net - 我应该安排一名字符串作家吗?或以某种方式重复使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2475228/

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