Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# 如何在子类中构造Dispose方法?_C# - Fatal编程技术网

C# 如何在子类中构造Dispose方法?

C# 如何在子类中构造Dispose方法?,c#,C#,我有一个这样的儿童班: SyncTelemetryChannel : ITelemetryChannel ITelemetryChannel : IDisposeable 我应该在SyncTelemetryChannel Dispose方法中放置什么?目前我有: public void Dispose() {} 谢谢,Peter公共类同步遥测频道:ITelemetryChannel public class SyncTelemetryChannel : ITelemetryChannel

我有一个这样的儿童班:

SyncTelemetryChannel : ITelemetryChannel 
ITelemetryChannel : IDisposeable
我应该在SyncTelemetryChannel Dispose方法中放置什么?目前我有:

public void Dispose() {}
谢谢,Peter

公共类同步遥测频道:ITelemetryChannel
public class SyncTelemetryChannel : ITelemetryChannel
{
        private bool _disposed = false;

        /// <summary>
        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
        /// </summary>
        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        /// <summary>
        /// Releases unmanaged and - optionally - managed resources.
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
                return;

            if (disposing)
            {                    
                // Free any other managed objects here.                    
            }

            // Free any unmanaged objects here.
            _disposed = true;
        }

}
{ private bool_disposed=false; /// ///执行与释放、释放或重置非托管资源相关的应用程序定义的任务。 /// 公共空间处置() { 处置(真实); 总干事(本); } /// ///释放非托管和(可选)托管资源。 /// ///如果为true,则同时释放托管和非托管资源;如果为false,则仅释放非托管资源。 受保护的虚拟void Dispose(bool disposing) { 如果(_) 返回; 如果(处置) { //在此处释放任何其他托管对象。 } //在此处释放所有非托管对象。 _这是真的; } }
ITelemetryChannel
是一个接口吗?(仔细检查)您应该正确地实现dispose模式。您的对象是否拥有非托管资源的所有权?谢谢LP13和Eric。我想得太多了,你的评论帮助了我。