gpt4 book ai didi

c# - 如何处理 IDisposable?

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

假设我有这 3 个类。

abstract class MyBase
{
//some base code here
}

class Foo : MyBase, IDisposable
{
//got at least a field I should dispose
}

class Bar : MyBase, IDisposable
{
//got at least a field I should dispose
}

我有几个这样的类(class)。我的类(class)拥有 List<base> .我怎样才能正确处理所有这些类,而不必测试/转换以获得正确的类型然后拥有 Dispose

最佳答案

你可以使用:

foreach (var disposable in list.OfType<IDisposable>())
{
disposable.Dispose();
}

我想说的是,通常拥有这种类层次结构是个坏主意;这意味着客户不能以相同的方式使用“MyBase 的任何实例”,因为有针对特定类型的附加契约(Contract)。让 Base 实现 IDisposable 会更简洁,即使少数特定类型实际上并不需要它。

关于c# - 如何处理 IDisposable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231936/

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