সুতরাং আমি প্রায়শই এই পরিস্থিতিতে চলে যাই ... যেখানে Do.Something(...)নাল সংগ্রহটি দেয়, যেমন:
int[] returnArray = Do.Something(...);
তারপরে, আমি এই সংগ্রহটি এর মতো ব্যবহার করার চেষ্টা করি:
foreach (int i in returnArray)
{
// do some more stuff
}
আমি কেবল কৌতূহলী, কেন নালাগুলি সংগ্রহের জন্য ফোরচ লুপ কাজ করতে পারে না? এটা আমার কাছে যৌক্তিক মনে হয় যে 0 টি পুনরাবৃত্তি নাল সংগ্রহের সাথে সম্পাদিত হবে ... পরিবর্তে এটি একটি নিক্ষেপ করবে NullReferenceException। কেউ হতে পারে কেন এমন হতে পারে?
আমি বিরক্তিকর হয়ে উঠছি কারণ আমি এমন APIs নিয়ে কাজ করছি যা তারা ঠিক কী ফিরে আসে সে সম্পর্কে পরিষ্কার নয়, তাই আমি if (someCollection != null)সর্বত্রই শেষ করি ...
সম্পাদনা করুন: যেগুলি foreachব্যবহার করে তা ব্যাখ্যা করার জন্য আপনাকে সকলকে ধন্যবাদ GetEnumeratorএবং যদি কোনও গণক না পাওয়া থাকে তবে ভবিষ্যদ্বাণীটি ব্যর্থ হবে। আমি অনুমান করি যে আমি কেন ভাষা / রানটাইম এনুমरेटरটি ধরার আগে নাল চেক করতে পারব না বা করবে না। আমার কাছে মনে হয় যে আচরণটি এখনও ভালভাবে সংজ্ঞায়িত হবে।
nullমান দেওয়া হলে অপ-অপশনে পরিণত হওয়ার জন্য সংজ্ঞায়িত হবে । আপনি কি কেবল foreachলুপ বা অন্যান্য বিবৃতিতেও এটি পরামর্শ দিচ্ছেন ?