মাঝে মাঝে স্ট্যাক ওভারফ্লোতে প্রান্তের কেস এবং অন্যান্য অদ্ভুততা সম্পর্কিত প্রশ্নগুলি দেখতে পাই যা জোন স্কিট এবং এরিক লিপার্টের পছন্দগুলির দ্বারা খুব সহজেই উত্তর দেওয়া হয়, ভাষাটির গভীর জ্ঞান এবং এর অনেকগুলি জটিলতা বোঝায়, যেমন:
আপনি ভাবতে পারেন কোনও
foreach
লুপ ব্যবহার করার জন্য , আপনি যে সংগ্রহটি পুনরাবৃত্তি করছেন তা অবশ্যই প্রয়োগ করতে হবেIEnumerable
বাIEnumerable<T>
। তবে দেখা যাচ্ছে যে এটি আসলে কোনও প্রয়োজন নয়। যা প্রয়োজন তা হ'ল সংগ্রহের ধরণটিতে অবশ্যই একটি পাবলিক পদ্ধতি বলাGetEnumerator
উচিত এবং এর জন্য অবশ্যই এমন কোনও প্রকার ফিরে আসতে হবে যা জনসাধারণের সম্পত্তি হিসাবে পরিচিতCurrent
এবং একটি পাবলিক পদ্ধতিMoveNext
যা ফিরে আসেbool
। যদি সংকলক নির্ধারণ করতে পারে যে এই সমস্ত প্রয়োজনীয়তা পূরণ করা হয় তবে সেই পদ্ধতিগুলি ব্যবহার করার জন্য কোড তৈরি করা হয়। সেই প্রয়োজনীয়তা পূরণ করা হয় না শুধু যদি আমরা অবজেক্ট প্রয়োগ কিনা তা আপনার পরীক্ষা নাIEnumerable
বাIEnumerable<T>
।
এটি দুর্দান্ত জিনিস আমি বুঝতে পারি এরিক কেন এটি জানে; সে সংকলক দলে রয়েছে, তাই তাকে জানতে হবে। তবে যারা এমন গভীর জ্ঞান প্রদর্শন করেন যারা অন্তর্নিহিত নয় তাদের কী করবেন?
নিখুঁত প্রাণীরা (যারা সি # সংকলক দলে নেই) কীভাবে এই জাতীয় জিনিসগুলি সন্ধান করতে পারে?
বিশেষত, এই পদ্ধতিগুলি কীভাবে এই জ্ঞানগুলি নিয়মিতভাবে উত্সাহিত করতে, এটি অন্বেষণ করতে এবং এটি অভ্যন্তরীণ করার জন্য (এটিকে নিজস্ব তৈরি করে) ব্যবহার করার জন্য কোনও পদ্ধতি রয়েছে?