সাধারণভাবে (সমস্ত ভাষা এবং সমস্ত সংকলক বিবেচনা করে) একটি স্যুইচ বিবৃতি একটি / if বিবৃতি চেয়ে দক্ষ হতে পারে, কারণ একটি সংকলকটির পক্ষে স্যুইচ স্টেটমেন্ট থেকে জাম্প টেবিল তৈরি করা সহজ is যথাযথ সীমাবদ্ধতা দেওয়া হলে / অন্য বিবৃতিগুলির জন্য একই জিনিস করা সম্ভব, তবে এটি আরও বেশি কঠিন।
সি # এর ক্ষেত্রে এটিও সত্য, তবে অন্যান্য কারণেও।
প্রচুর পরিমাণে স্ট্রিং সহ, একটি স্যুইচ স্টেটমেন্ট ব্যবহার করার ক্ষেত্রে একটি উল্লেখযোগ্য পারফরম্যান্স সুবিধা রয়েছে কারণ সংকলকটি জাম্পটি বাস্তবায়নের জন্য হ্যাশ টেবিল ব্যবহার করবে।
অল্প সংখ্যক স্ট্রিং সহ, দুজনের পারফরম্যান্স একই।
এটি কারণ কারণ সে ক্ষেত্রে সি # সংকলকটি একটি জাম্প টেবিল তৈরি করে না। পরিবর্তে এটি এমএসআইএল উত্পন্ন করে যা আইএফ / ইএলএসই ব্লকগুলির সমতুল্য।
একটি "স্যুইচ স্টেটমেন্ট" এমএসআইএল নির্দেশনা রয়েছে যে যখন জিট করা হয় তখন একটি স্যুইচ স্টেটমেন্ট বাস্তবায়নের জন্য একটি জাম্প টেবিল ব্যবহার করবে। এটি কেবল পূর্ণসংখ্যার ধরণের সাথে কাজ করে, তবে (এই প্রশ্নটি স্ট্রিং সম্পর্কে জিজ্ঞাসা করে)।
সংখ্যক স্ট্রিংয়ের জন্য, IF / ELSE ব্লক তৈরি করতে সংকলকটির পক্ষে এটি আরও কার্যকর তবে হ্যাশ টেবিলটি ব্যবহার করা।
আমি যখন প্রাথমিকভাবে এটি লক্ষ্য করেছি, তখন আমি অনুমান করেছিলাম যে আইএফ / ইএলএসই ব্লকগুলি অল্প সংখ্যক স্ট্রিংয়ের সাথে ব্যবহার করা হয়েছিল যে সংকলকটি বড় সংখ্যক স্ট্রিংয়ের জন্য একই রূপান্তরটি করেছিল।
এটি ছিল ভুল। 'আইএমএ' আমার কাছে এটি উল্লেখ করার জন্য যথেষ্ট সদয় ছিল (ভাল ... তিনি এ বিষয়ে দয়া করেননি, তবে তিনি সঠিক ছিলেন, এবং আমি ভুল ছিলাম, যা গুরুত্বপূর্ণ অংশ)
আমি এমএসআইএল-তে "স্যুইচ" নির্দেশের অভাব সম্পর্কে একটি হাড়ের নেতৃত্বাধীন ধারণাও তৈরি করেছি (আমি বুঝতে পেরেছি, যদি কোনও স্যুইচ আদিম ছিল, তারা কেন এটি একটি হ্যাশ টেবিল দিয়ে ব্যবহার করছিল না, তাই সেখানে কোনও সুইচ আদিম হওয়া উচিত নয়)। ...)। এটি উভয়ই ভুল ছিল এবং আমার দিক থেকে অবিশ্বাস্যভাবে বোকা। আবার 'আইএমএ' আমার দিকে ইঙ্গিত করেছে।
আমি এখানে আপডেটগুলি করেছি কারণ এটি সর্বাধিক রেটযুক্ত পোস্ট এবং স্বীকৃত উত্তর।
তবে, আমি এটিকে সম্প্রদায় উইকি বানিয়েছি কারণ আমার মনে হয়েছে যে ভুল হওয়ার জন্য আমি আরইপি-র যোগ্য নই। আপনি যদি চান্স পান তবে দয়া করে 'ইমাম' পোস্টটি পোস্ট করুন।