Есть ли способ переопределить сигнатуру метода абстрактного класса, которая использует <T>
с помощью ClassName, чтобы я мог передать объект по ссылке, не восстанавливая его?
Например, у меня есть куча менеджеров объектов,Я хочу, чтобы все они содержали метод .Save (Object), который будет выполнять соответствующее действие сохранения в зависимости от состояния объекта (Вставить, Обновить, Удалить и т. Д.).
Я пытался создать базовый класс, которыйсодержит следующие методы:
protected virtual bool Update<T>(ref T _object) where T : ObjectBase
{
throw new NotImplementedException();
}
public virtual bool Save<T>(ref T _object) where T : ObjectBase
{
// Figure out which action to take based on _object's state and execute it
}
И я хотел, чтобы мои унаследованные классы определяли методы, используя что-то вроде этого:
public override bool Update<Consumer>(ref Consumer _object)
{
return _service.UpdateConsumer(ref _object);
}
Моя проблема в том, что я не могу указать, что <T>
теперь будет <Consumer>
, и, сохраняя его на <T>
, я не могу передать его по ссылке