У меня есть несколько классов, которые концептуально относятся к одному уровню. У них нет общих свойств, поэтому им не нужно наследовать от некоторого базового класса.
У меня также есть несколько методов, которые работают с этими классами. Некоторые из них являются шаблонами следующего стиля:
public SomeClass
{
public void SomeMethod<T> (T argument) where T : BaseClass
{
/* Do something */
}
}
Так что я использую это ключевое слово WHERE просто для защиты кода (я полагаю, от себя), чтобы я по ошибке не передавал этому методу что-то еще.
Естественно, я сделал эти другие классы производными от BaseClass, который пуст и не имеет никакой другой цели (по крайней мере на данный момент), чем группировать другие классы.
Возможно, это не очень хороший подход, но в любом случае я его использую.
Есть ли лучший способ сделать это?
РЕДАКТИРОВАТЬ: После рассмотрения я решил не придерживаться этого подхода и просто удалил этот базовый класс. Хорошо без этого. В любом случае, я не могу сделать код абсолютно совершенным, и чем меньше ненужных вещей, тем лучше.