Общий член для наследуемых классов

196
21 июля 2017, 00:57

Имеется абстрактный (базовый) класс (для примера):

public abstract class ClassBase
{
    protected static Logger logger = new Logger("logger_name");
}

И два потомка:

public class Class1 : ClassBase {}
public class Class2 : ClassBase {}

У потомков должен быть общий логгер. Logger реализует IDisposable. Как быть в таком случае? Мы же ведь не может выполнить Dispose на данном члене

Answer 1

Никак. Статические поля не нужно Dispose()-ить, ведь они будут использованы другими экземплярами класса, создаваемыми после окончания работы Dispose() данного экземпляра.

Возможно, вам понадобится «вручную» закрыть логгер в конце работы программы, в тот момент, когда вы можете гарантировать, что экземпляров данного класса (и его потомков) больше нет. Более правильное решение — изменить дизайн логгера, чтобы он не требовал вызова Dispose() в конце работы.

READ ALSO
Работа с реляционной БД ASP.NET

Работа с реляционной БД ASP.NET

Есть два таблицы: таблица новостей и таблица картинокВ таблице картинок есть поле NewsId которое связано с Id новостей

313
Оптимизировать код c#

Оптимизировать код c#

Добрый день, нужна ваша помощь в оптимизации кодаЗадача : зашифровать часть байтов в файле алгоритмом aes c# Как я сделал:

238
Как реализовать многопоточный брут на c#?

Как реализовать многопоточный брут на c#?

У меня есть база логинов, паролей, портов и ip адресовСуть в том, что нужно реализовать отдельный перебор для каждого ip адреса в потоках

361