有没有办法覆盖<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>
我无法通过 ref 传递它