Удалить строку из многомерного массива, возвращаемого запросом SQL

Disposed не означает, что он ушел. Disposed означает, что был удален любой неуправляемый ресурс (например, файл, соединение любого типа ...). Хотя это обычно означает, что объект не предоставляет каких-либо полезных функций, могут быть методы, которые не зависят от этого неуправляемого ресурса и все еще работают как обычно.

Механизм удаления существует как .net ( и наследовать, C # .net) - это сборка мусора, то есть вы не отвечаете за управление памятью. Однако сборщик мусора не может решить, закончил ли неуправляемый ресурс использовать, поэтому вам нужно сделать это самостоятельно.

Если вы хотите, чтобы методы генерировали исключение после того, как объект был отключен, ll нужно логическое для захвата статуса dispose, и как только объект будет удален, вы выбросите исключение:

public class A : IDisposable
{
   int i = 100;
   bool disposed = false;
   public void Dispose()
   {
      disposed = true;
      Console.WriteLine("Dispose() called");
   }
   public void f()
   {
      if(disposed)
        throw new ObjectDisposedException();

      Console.WriteLine("{0}", i); i  *= 2;
   }
}
0
задан LBNHTX 18 March 2019 в 13:41
поделиться