Jika BaseFruit
memiliki konstruktor yang menerima int weight
, bisakah saya instantiate sepotong buah dengan metode generik seperti ini?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
Contoh ditambahkan di balik komentar. Sepertinya saya hanya dapat melakukan ini jika saya memberikan BaseFruit
konstruktor tanpa parameter dan kemudian mengisi semuanya melalui variabel anggota. Dalam kode asli saya (bukan tentang buah) ini agak tidak praktis.
-Perbaharui-
Jadi sepertinya itu tidak bisa diselesaikan dengan kendala dengan cara apa pun. Dari jawaban ada tiga solusi kandidat:
- Pola Pabrik
- Refleksi
- Penggerak
Saya cenderung berpikir refleksi adalah yang paling bersih, tetapi saya tidak bisa memutuskan di antara keduanya.