এটি যতটা সম্ভব পরিষ্কার করার জন্য আমি সংকলকটিকে সমস্ত কাজ করতে দিতে চাই। কোনও কাস্ট নেই (তাই এটি প্রকৃতপক্ষে টাইপ-নিরাপদ)। কোনও তৃতীয় পক্ষের গ্রন্থাগার (সিস্টেম.লিনক) ব্যবহার করা হয় না (কোনও রানটাইম ওভারহেড নেই)।
public static IEnumerable<T> GetEnumerable<T>(this T[] arr)
{
return arr;
}
// এবং কোডটি ব্যবহার করতে:
String[] arr = new String[0];
arr.GetEnumerable().GetEnumerator()
এটি এমন কিছু সংকলক যাদুবিদ্যার সুবিধা নেয় যা সবকিছু পরিষ্কার রাখে।
অন্য বিষয়টি লক্ষণীয় হ'ল আমার উত্তরটি হ'ল একমাত্র উত্তর যা সংকলন-সময় চেক করবে।
অন্য যে কোনও সমাধানের জন্য যদি "আরর" প্রকারের পরিবর্তন হয়, তবে কলিং কোডটি সংকলিত হবে এবং রানটাইম ব্যর্থ হবে, যার ফলে রানটাইম বাগ হবে।
আমার উত্তরটি কোডটি সংকলন না করে এবং তাই আমার কোডটিতে একটি বাগ প্রেরণের কম সম্ভাবনা রয়েছে, কারণ এটি আমার কাছে ইঙ্গিত দেয় যে আমি ভুল টাইপটি ব্যবহার করছি।