Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用IDisposable接口显示类的组合_C#_Idisposable - Fatal编程技术网

C# 使用IDisposable接口显示类的组合

C# 使用IDisposable接口显示类的组合,c#,idisposable,C#,Idisposable,我已经为类A实现了IDisposable接口和下面的代码 我是否应该处理类B的对象 public class A : IDisposable { private B _objB = null; public A() { _objB = new B(); } public void Load(string fil

我已经为类
A
实现了
IDisposable
接口和下面的代码

我是否应该处理类
B
的对象

        public class A : IDisposable
        {
            private B _objB = null;

            public A()
            {
                _objB = new B();
            }

            public void Load(string fileName, int loadFlags)
            {
                _objB .Load(fileName, 0);
            }
            public void Close()
            {
                _objB .Reset();
            }

            public void Dispose()
            {
                GC.SuppressFinalize(this);
            }
        }
在void
Dispose()


在class
A
中,我声明class
B
,因此它需要使用相同的
C.SuppressFinalize(_objB)进行处理

您完全误解了GC.SuppressFinalize()的功能。它只在类具有析构函数(又称终结器)时才起作用。你没有,所以不要叫它。如果B实际上实现了IDisposable,则只需处理它:

    public void Dispose()
    {
        _objB.Dispose();
    }

假设_objB可以被安全地处理多次,并且在处理后使用它已经生成ObjectDisposedException。

您完全误解了GC.SuppressFinalize()的作用。它只在类具有析构函数(又称终结器)时才起作用。你没有,所以不要叫它。如果B实际上实现了IDisposable,则只需处理它:

    public void Dispose()
    {
        _objB.Dispose();
    }
假设_objB可以安全地处理多次,并且在处理后使用它已经生成ObjectDisposedException