我正在写一个C#程序在那里我有一个继承多个接口,如以下C#多重继承泄漏
class MyClass:IMyInterface,IExampleInterface,IDisposable
{
}
但这样既不IMyInterface的或也不IExampleInterface单独继承了IDisposable的类。但是,当我创建例如
IMyInterfacce myInterface = new MyClass();
和分析我的代码(使用Coverity的工具),我发现有一个资源泄漏和对象MyInterface的未释放的内存其持有的资源的接口的实例。 尽管我正在使用新的MyClass()实例化MyClass实例,但正如IMyInterface并未实现IDisposable,尽管MyClass确实如此。
那么为什么在地球上,我对“myInterface”对象感到抱怨资源泄漏/内存泄漏。
任何建议,非常欢迎。
'IMyInterface'只是一个接口,它没有一个实现,它基本上是一个代码合同,所以它不能保存内存。不管你的实施是什么,都是这样做的。 –
如果'MyClass'的任何接口都有impl'IDisposable',为什么试试在MyClass中实现?如果'IMyInterfacce'不是impl'IDisposable',但是你使用'IMyInterfacce myInterface = new MyClass();',你不能处理你的对象,你需要使用类型转换。 – f14shm4n
@您是绝对正确的,因为IMyInterface没有实现,因此无法保存内存。但是当我实例化IMyInterface myInterface = new MyClass();这就是myInterface占用内存中的空间的原因,并且在代码超出范围之后它不会释放它。 – user2913184