সি # জেনেরিক্সে, আমরা একটি ধরণের প্যারামিটারের T
ডিফল্ট কনস্ট্রাক্টর হওয়ার কথা বলে বাধা ঘোষণা করতে পারি where T : new()
। তবে এর মতো অন্য কোনও ধরণের সীমাবদ্ধতা বৈধ নয় - new(string)
উদাহরণস্বরূপ, ইত্যাদি etc.
একটি ভাষা নকশা এবং / বা প্রয়োগের দৃষ্টিকোণ থেকে, এর কারণ কী?
কনস্ট্রাক্টররা যেভাবে কাজ করেন বা টাইপ সিস্টেমটি প্রয়োগ করা যায় সে পথে এমন কিছু রয়েছে যা এটিকে নিষিদ্ধ করে (বা অন্তত এটি আরও শক্ত করে তোলে)? যদি তাই হয়, এটা কি? কোথাও যে পড়ছে default(T)
আসলে করার প্রনয়ন new T()
জন্য T : struct
। এটি কি এর সাথে সম্পর্কিত, হতে পারে?
অথবা ভাষাটিকে আরও জটিল করে তুলতে কেবল কোনও নকশার সিদ্ধান্ত নেওয়া হয়েছে?
new(string)
কোনও ডিফল্ট নির্মাতা বাধা নয়। আপনার প্রশ্নটি "এইরকম সীমাবদ্ধতা কেন নেই যেখানে নির্দিষ্ট নির্মাতার স্বাক্ষর প্রয়োজন?" খুব সম্ভবত কারণ এই জাতীয় সীমাবদ্ধতা বিশেষভাবে কার্যকর হবে না।