.NET ফ্রেমওয়ার্ক 3.5 রেঞ্জ পেয়েছে:
এমসডিএন থেকে পরিবর্তন করুন from
আপনি এটি "অন্তর্ভুক্ত" এবং আইএফ স্টেটমেন্ট দিয়ে ব্যবহার করতে পারেন, যেহেতু কেউ বলেছিল যে সুইচ স্টেটমেন্টটি "==" অপারেটর ব্যবহার করে।
এখানে একটি উদাহরণ:
int c = 2;
if(Enumerable.Range(0,10).Contains(c))
DoThing();
else if(Enumerable.Range(11,20).Contains(c))
DoAnotherThing();
তবে আমি মনে করি আমরা আরও মজা করতে পারি: যেহেতু আপনাকে ফেরতের মানগুলির প্রয়োজন হবে না এবং এই ক্রিয়াটি প্যারামিটার নেয় না, আপনি সহজেই ক্রিয়া ব্যবহার করতে পারেন!
public static void MySwitchWithEnumerable(int switchcase, int startNumber, int endNumber, Action action)
{
if(Enumerable.Range(startNumber, endNumber).Contains(switchcase))
action();
}
এই নতুন পদ্ধতির সাথে পুরানো উদাহরণ:
MySwitchWithEnumerable(c, 0, 10, DoThing);
MySwitchWithEnumerable(c, 10, 20, DoAnotherThing);
যেহেতু আপনি ক্রিয়াগুলি অতিক্রম করছেন, মানগুলি নয়, আপনার প্রথম বন্ধনী বাদ দেওয়া উচিত, এটি অত্যন্ত গুরুত্বপূর্ণ। আপনি আর্গুমেন্ট সহ ফাংশন প্রয়োজন হয়, তাহলে শুধু টাইপ পরিবর্তন Action
করার Action<ParameterType>
। আপনার যদি ফেরতের মান প্রয়োজন হয় তবে ব্যবহার করুন Func<ParameterType, ReturnType>
।
সি # 3.0 এ কেস প্যারামিটারটি একই বিষয়টিকে সত্যায়িত করতে সহজে আংশিক অ্যাপ্লিকেশন নেই , তবে আপনি একটু সহায়ক পদ্ধতি তৈরি করেন (কিছুটা ভার্বোজ, থো)।
public static void MySwitchWithEnumerable(int startNumber, int endNumber, Action action){
MySwitchWithEnumerable(3, startNumber, endNumber, action);
}
পুরানো অপরিহার্য বিবরণীর চেয়ে আইএমএইচও আরও শক্তিশালী এবং মার্জিত হ'ল এখানে কীভাবে নতুন কার্যক্ষম আমদানি করা বিবৃতি রয়েছে example