別々のグリッドにデータを取り込むデータを含む2つのクラスがあります。グリッドは非常に似ていますが、2つのクラスを使用する必要があるほど異なります。両方のグリッドに「GetDuplicates」という関数が含まれており、これらのクラスを実装している場合、クラスに重複があるかどうかを確認し、重複していることを示すメッセージを返すメソッドがあります。
private bool HasDuplicates(FirstGridList firstList)
{
var duplicates = firstList.FindDuplicates();
if (duplicates.Count > 0)
{
// Do Something
return true;
}
return false;
}
FirstGridListとSecondGridListの両方を使用してそのメソッドを呼び出せるようにしたいと思います。ジェネリック制約を適切に実装してから、ジェネリック入力パラメーターを正しい型にキャストする方法がわかりません。に似ている:
private bool HasDuplicates<T>(T gridList)
{
// Somehow cast the gridList to the specific type
// either FirstGridList or SecondGridList
// Both FirstGridList and SecondGridList have a method FindDuplicates
// that both return a List<string>
var duplicates = gridList.FindDuplicates();
if (duplicates.Count > 0)
{
// Do Something
return true;
}
return false;
}
ご覧のとおり、このメソッドは同じことを行います。したがって、これを2回作成したくありません。これは可能だと思いますが、間違って考えています。私はまだジェネリックスの経験がありません。ありがとうございました。