<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>
ないことです。