問題: 複数回継承するエンティティ クラス (基本クラス) があります。これで、すべての派生クラスにAdd
-method と-method があります。Validate
これらの関数はすべての派生クラスで同一であり、static
.
これが私のAdd
方法です
public static long Add(DBData[] UserData)
{
SortedDictionary<string, DBData> Data = new SortedDictionary<string, DBData>();
foreach (DBData d in UserData)
{
Data.Add(d.FieldName, d);
}
if (Project.Validate(Data, OperationMode.Add))
{
return DBUtility.Insert("Project", VSCommon.Serialise(Data));
}
else
{
return -1;
}
}
ここでProject
、上記の関数に " " があります (2 か所、1 つはProject
この関数タイプのオブジェクトも属する場合、もう 1 つはデータベース テーブル名です)。これらは、すべての派生クラスの唯一の違いです。このメソッドを基本クラスに入れたいAdd
ので、すべての派生クラスで何度も書くのをスキップできます。
検索したところ、ジェネリックを使用しようとしている人がいることがわかりましたが、ジェネリック宣言を使用するときのようにそれを拾うようには見えませんでした。Validate
-methodを呼び出すと、コンパイル エラーが発生しました。string
また、関連するテーブル名を取得するためにクラスの名前が必要です。
自分の問題を定義できるかどうかわからないので、助けていただければ幸いです。ありがとう。