এটি সি # 7 এর একটি নতুন বৈশিষ্ট্য যা একটি খুব সুন্দর বৈশিষ্ট্য যা প্রায়শই প্যাটার্ন মিলের সাথে ব্যবহৃত হয়। এই বৈশিষ্ট্যটি এবং আরও অনেকগুলি সি # 7.0 তে সি # টিম ব্লগে হোয়াট নিউতে ঘোষণা করা হয়েছে ।
দলটি এখানে যে জিনিসটি অর্জন করার চেষ্টা করে তা হ'ল আরও তরল কোড। আপনার কি এমন কিছু ক্ষেত্রে মনে আছে যেখানে আউট ভেরিয়েবলের তালিকাটি ব্যবহারের জন্য অত্যন্ত দীর্ঘ হয়ে চলেছে? শুধু একটি দ্রুত উদাহরণ:
int i;
Guid g;
DateTime d;
if (int.TryParse(o, out i)) { }
else if (Guid.TryParse(o, out g)) { }
else if (DateTime.TryParse(o, out d)) { }
সমস্যা দেখুন? এই সমস্ত আউট ভেরিয়েবল সেখানে বসে কিছু না করাই অযথা। সি # 7 ব্যবহার করে রেখার সংখ্যা অর্ধেক কেটে নেওয়া যেতে পারে:
if (int.TryParse(o, out int i)) { }
else if (Guid.TryParse(o, out Guid g)) { }
else if (DateTime.TryParse(o, out DateTime d)) { }
কেবল রেখাগুলির সংখ্যা হ্রাস করা নয়, সুযোগগুলির ক্ষেত্রে ভেরিয়েবলগুলির কোনও অযৌক্তিক তালিকা নেই যেখানে আপনি এটি রাখতে চান না। এটি আপনাকে এমন কোনও পরিবর্তনশীল ব্যবহার করতে বাধা দেয় যা আপনি ব্যবহার করতে চান নি তবে এটি এখন আপনার কাছে দৃশ্যমান।
এই বৈশিষ্ট্যটি switch
এই কোডের মতো বিবৃতিতে প্যাটার্ন মেলানোর সাথেও দরকারী (যা উপরের কোডের চেয়ে আলাদা আচরণ করে!):
switch (o)
{
case int i: { break; }
case Guid g: { break; }
case DateTime d: { break; }
}