#csharp_for_beginners
تکنیک Pattern matching روشی است که امکان بررسی یک عبارت (expression) براساس ویژگیهای خاصی را فراهم میکند.
این روش در سیشارپ کمک میکند تا کدها خواناتر، مختصرتر و ایمنتر شوند، مثلاً به جای عملیات مرسوم قبلی، بررسی نوع یا وضعیت ارزشها را در قالبهایی مستقیمتر انجام میدهد.
سازوکارها و ساختارهای اصلی در سیشارپ
۱. is Expression (عملگر is)
این ساختار بررسی میکند که آیا یک عبارت با یک الگو (pattern) تطابق دارد یا خیر، و در صورت موفقیت، امکان تعریف متغیر جدید نیز فراهم میشود.
کاربرد معمول: چک نوع متغیر و استخراج آن در قالب متغیر محلی
مثال
int? maybe = 12;
if (maybe is int number) {
Console.WriteLine($"The value is {number}");
}
۲. عبارت switch یا switch Expression
یک روش کامپکت برای انتخاب رفتار یا مقدار خروجی بر اساس الگوی تطابق
visitorCount switch {
1 => 12.0m,
2 => 20.0m,
_ => 0.0m
}
Declaration & Type Patterns
Constant Patterns
Relational Patterns
Property Patterns
Positional Patterns
Var Patterns
Discard Pattern (_)
Logical Patterns (and, or, not)
List Patterns
مثال کاربردی ساده (Switch Expression)
برای تفهیم بهتر، یک مثال ساده از switch expression
var x = 4;
string result = x switch {
1 => "one",
2 => "two",
3 => "three",
_ => "other"
};
Console.WriteLine(result); // خروجی: "other"
نکات مهم و پیشفرضها
خوانایی و اجتناب از boilerplate: الگوها کمک میکنند تا از ساختارهای طولانی if-else یا castingهای دستی دوری کنیم.
اعتبارسنجی compile-time: کامپایلر در صورت نپرداختن به حالتهایی مانند null یا همهٔ مقدارهای احتمالاً ممکن، هشدار میدهد.
ترکیب با refactoringهای IDE: ابزارهایی مانند Visual Studio پیشنهاد میدهند به جای as و null check، از pattern matching استفاده شود.
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______