問題: 複数回継承するエンティティ クラス (基本クラス) があります。これで、すべての派生クラスに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また、関連するテーブル名を取得するためにクラスの名前が必要です。
自分の問題を定義できるかどうかわからないので、助けていただければ幸いです。ありがとう。