2 つの派生クラス (Sale と ServiceCharge) があります。どちらもトランザクションです。BusinessService がある場合は、その ServiceCharge を作成したいと考えています。Product を渡す場合は、Sale をインスタンス化します。
これが私の考えです。
private void CreateInstance(object element)
{
Transaction transaction;
if (element.GetType() == typeof(BussinessService))
{
transaction = new ServiceCharge((BussinessService)element))
}
else
{
transaction = new Sale((Product)element);
}
{
もっとエレガントな方法を教えてください。単一のコンストラクターのみでジェネリックを使用する方法を知っています
private void CreateInstance<T>(T element)
{
Transaction transaction = new Transaction((T)element);
}
しかし、最初のケースでうまくいく方法がわかりません。