派生クラスの基本クラスフィールドのデータ型と値を変更できますが、引き続き基本クラスメソッドを呼び出しますが、派生クラス値を使用できますか?C#継承:派生クラスのフィールドデータ型と値を変更する
サンプルコード:
public class class1
{
protected DBContext DB { get; set; }
public A()
{
DB = new DBContext();
}
public virtual DBRecord find(int id)
{
return DB.DBRecord.Find(id);
}
}
public class class2 : class2
{
protected DifferentDBContext DB { get; set; }
public B()
{
DB = new DifferentDBContext();
}
}
し、私は以下のコードでメソッドを呼び出そうとしました。
class2 x = new class2();
x.find(1); // calls the base class method with base class field values
何が起きているかに基づいて、基本クラスの変数を使用して基本クラスのメソッドを呼び出しています。私は派生クラスのフィールドの型/値を設定し、基本クラスのメソッドを呼び出すことが可能かどうかを知りたいですか?彼らは同じ実装を持っているだけで、異なる値を使用しているからです。
私がこれまでにしたこと(これは冗長だと感じています)と作業です。
public class class2 : class1
{
//Other implementations omitted
public override DBRecord find(int id)
{
return DB.DBRecord.Find(id);
}
}
注:これは単純なOOP原理かもしれませんが、あなたが知っている、人々はあなたがDBのコンテキストのインターフェイスを使用したりする必要がありどちらか
私がこれを求めている理由は、これが私がやろうとしていることで起こり、同じコードを何度も何度も何度も繰り返すことができないということです。 – Anthony