Я получаю предупреждение, когда запускаю какой-то код с помощью утилиты анализа кода Visual Studio, и я не уверен, как ее решить.Возможно, кто-то здесь сталкивался с подобной проблемой, решил ее и хочет поделиться своим пониманием.
Я программирую ячейку с нарисованной на заказ ячейкой, используемую в элементе управления DataGridView.Код напоминает:
public class DataGridViewMyCustomColumn : DataGridViewColumn
{
public DataGridViewMyCustomColumn() : base(new DataGridViewMyCustomCell())
{
}
. Он генерирует следующее предупреждение:
CA2000: Microsoft.Reliability: в методе 'DataGridViewMyCustomColumn.DataGridViewMyCustomColumn ()' вызывается System.IDisposable.Dispose onобъект 'new DataGridViewMyCustomCell ()' до того, как все ссылки на него выйдут из области видимости.
Я понимаю, что это предупреждает меня. DataGridViewMyCustomCell (или класс, от которого он наследуется) реализует интерфейс IDisposable и Dispose () метод должен быть вызван для очистки любых ресурсов, заявленных DataGridViewMyCustomCell, когда его больше нет.
В примерах, которые я видел в интернете, предлагается использование блока для определения времени жизни объекта и автоматического его удаления системой, но база не распознается при перемещении в тело конструктора, поэтому яя не могу написать блок using вокруг него ... что я не уверен, что хотел бы делать в любом случае, так как это не указывало бы во время выполнения освободить объект, который еще можно было бы использовать позже внутри базового класса?
Тогда мой вопрос, в порядке ли код?Или как это можно изменить, чтобы устранить предупреждение?Я не хочу подавлять предупреждение, если это действительно уместно.