যদি BaseFruit
এমন কোনও কনস্ট্রাক্টর থাকে যা একটি গ্রহণ করে int weight
, আমি কি জেনেরিক পদ্ধতিতে এই জাতীয় কোনও ফলকে ইনস্ট্যান্ট করতে পারি?
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
মন্তব্যের পিছনে একটি উদাহরণ যুক্ত করা হয়েছে। মনে হচ্ছে আমি কেবল তখনই এটি করতে পারি যদি আমি BaseFruit
প্যারামিটারলেস কনস্ট্রাক্টর দিয়ে থাকি এবং তারপরে সদস্য ভেরিয়েবলের মাধ্যমে সমস্ত কিছু পূরণ করি। আমার আসল কোডে (ফল সম্পর্কে নয়) এটি বরং ব্যবহারিক।
-Update-
সুতরাং দেখে মনে হচ্ছে এটি কোনওভাবেই সীমাবদ্ধতার দ্বারা সমাধান করা যায় না। উত্তরগুলি থেকে তিনটি প্রার্থীর সমাধান রয়েছে:
- কারখানার প্যাটার্ন
- প্রতিফলন
- একটিভেটর
আমি মনে করি প্রতিবিম্ব সবচেয়ে কম পরিষ্কার, তবে আমি অন্য দুটির মধ্যে সিদ্ধান্ত নিতে পারি না।