1 つのジェネリック パラメーターを受け入れるパブリック ジェネリック メソッドがあります。また、ジェネリック メソッドから呼び出している具象型引数を受け入れるプライベート メソッドがいくつかあります。私の問題をよりよく説明するには、以下のコードを見てください。
public void Save<T>(T entity) where T : class
{
if(entity is LibraryItem) Save(entity as LibraryItem);
else if(entity is Folder) Save(entity as Folder);
else if(entity is ProductType) Save(entity as ProductType);
else if(entity is ProcessName) Save(entity as ProcessName);
}
そしてプライベートメソッド:
private void Save(ProcessName proc){}
private void Save(ProductType type){}
private void Save(Folder folder){}
...
コードを見ると、解決策が本当に好きではありません。考えられるすべてのタイプをチェックすることは、私見の悪い習慣のように見えます。それで、私の問題に対するよりクリーンな解決策があるのだろうか?実行時に T を動的にキャストし、適切なプライベート メソッドを呼び出すことは可能でしょうか?