چگونه از قابلیت string interpolation (الحاق رشته) در نسخه 9 سی شارپ استفاده کنیم؟
یکشنبه 14 شهریور 1400string interpolation (الحاق رشته) یکی از بهترین قابلیت های نسخه 9 سی شارپ است، در این مطلب قصد داریم درباره این قابلیت در نسخه 9 سی شارپ صحبت کنیم.
String interpolation قابلیتی است که در نسخه 9 سی شارپ شاهد آن هستیم و می توانیم از آن استفاده کنیم. این قابلیت به شما اجازه می دهد تا مقادیری که به صورت عبارت هستند را به یک رشته اضافه کنید. این قابلیت همچنین با نام جایگزینی متغیر نیز شناخته می شود و از دیگر نام های آن نیز می توان به variable interpolation و گسترش متغیرها اشاره کرد. این عملیات در واقع به روند اعتبارسنجی لیترال های رشته ای که دارای یک یا تعداد بیشتری placeholder هستند گفته می شود که با استفاده از مقادیر متناظر جایگزین می شوند.
ما در این مطلب قصد داریم کمی بیشتر درباره String interpolation در نسخه 9 سی شارپ صحبت کنیم و اطلاعات جامع و کاملی را در این خصوص در اختیار شما قرار دهیم. پس اگر شما هم جز توسعه دهندگانی هستید که از نسخه 9 سی شارپ استفاده می کنید حتما ادامه این مطلب را با دقت مطالعه کنید.
الحاق رشته در نسخه 9 سی شارپ
String interpolation در حال حاضر در بسیاری از زبان های برنامه نویسی مختلف پشتیبانی می شود که از جمله آنها می توان به زبان های پایتون، پرل، پی اچ پی، روبی، جاوا، اسکالا و ... اشاره کرد. این قابلیت در زبان برنامه نویسی سی شارپ در نسخه 6 معرفی شد. در ادامه سعی می کنیم اطلاعات کاملی درباره نحوه استفاده از این قابلیت در نسخه 9 سی شارپ را به شما ارائه دهیم.
برای کار کردن با نمونه کدهایی که در این مطلب به شما ارائه می دهیم شما باید نسخه 2019 ویژوال استودیو را روی سیستم خود نصب کنید. برای دانلود کردن این ابزار می توانید از طریق سایت ویژوال استودیو اقدام کنید.
ساخت یک پروژه اپلیکیشن کنسول در ویژوال استودیو
در ابتدا اجازه دهید تا یک پروژه اپلیکیشن کنسول برای .net core در ویژوال استودیو بسازیم. با فرض این که ویژوال استودیو 2019 روی سیستم شما نصب شده است می توانید مراحل زیر را دنبال کنید تا یک پروژه اپلیکیشن کنسول برای .net core در ویژوال استودیو بسازید:
- IDE ویژوال استودیو را راه اندازی کنید.
- بر روی گزینه Create new project کلیک کنید.
- در پنجره Create new project که برای شما باز می شود و از داخل لیستی که نمایش داده شده است گزینه Console App (.NET Core) را انتخاب کنید.
- روی گزینه Next کلیک کنید.
- در پنجره Configure your new project که در بخش بعدی نمایش داده می شود نام و محل ذخیره پروژه جدید خود را مشخص کنید.
- روی گزینه Create کلیک کنید.
ما در ادامه این مطلب از این پروژه اپلیکیشن کنسول برای کار کردن با string interpolation در بخش های بعدی استفاده خواهیم کرد.
ساختار رشته های الحاق شده در نسخه 9 سی شارپ
در برنامه نویسی یک رشته interpolate شده در واقع یک رشته لیترال است که شامل عبارت های interpolation می باشد. هر بار که یک رشته interpolate شده در داخل نتایج یک رشته حل می شود عبارت های interpolation با نمایش رشته ای نتایج عبارات جایگزین می شود.
یک رشته interpolate شده با نماد $ شروع می شود. علاوه بر این باید به این نکته توجه داشته باشید که نباید هیچ فاصله ای بین کاراکتر $ و لیترال رشته شما وجود داشته باشد. دستور زیر نشان دهنده سینتکس عبارت interpolate شده است.
{<interpolationExpression>[,<alignment>][:<formatString>]}
توجه داشته باشید که عناصری که داخل براکت ها قرار گرفته اند به صورت اختیاری می باشند. عنصر interpolationExpression نشان دهنده عبارتی است که یک رشته خروجی یا نتیجه را نشان می دهد. عنصر alignment یک عبارت ثابت را نشان می دهد که مقدار آن نشان دهنده کمترین تعداد کاراکتری است که باید داخل نمایش رشته ای نتیجه عبارت در زمان ارزیابی عبارت وجود داشته باشد. اگر این مقدار مثبت باشد نمایش رشته ای از راست شروع می شود و اگر منفی باشد از چپ شروع خواهد شد. عنصر formatString همانطور که از نامش پیداست نشان دهنده فرمت رشته ای است که برای نتیجه عبارت مناسب است.
ساخت یک رشته الحاقی در نسخه 9 سی شارپ
زمانی که قصد استفاده از string interpolation در نسخه 9 سی شارپ را دارید باید ابتدا یک $ پیش از نوشتن رشته خود قرار دهید و در ادامه به جای این که پارامترهای مربوط به هر یک از عناصر را به صورت جداگانه قرار دهید می توانید آنها را به صورت مستقیم به عنوان آرگومان در رشته های interpolate شده قرار دهید.
یک عبارت interpolation شامل یک براکت باز و بسته می باشد. قطعه کد زیر نشان می دهد که چگونه می توانید از string interpolation در نسخه 9 سی شارپ استفاده کنید تا یک لیترال رشته را به راحتی با متن جایگزین کنید.
var name = "Joydip";
Console.WriteLine($"Hello, {name}");
حال قطعه کد زیر را در نظر بگیرید:
string productName = "Lenovo Legion Laptop";
int counter = 5;
string output = string.Format("Today, {0} has been sold {1} times.",
productName, counter);
زمانی که شما این برنامه را اجرا می کنید محتوای شی رشته ای که با نام خروجی ذخیره شده است به شکل زیر نمایش داده می شود:
Today, Lenovo Legion Laptop has been sold 5 times.
قطعه کد بالا علاوه بر این به شکل زیر نیز قابل نمایش خواهد بود:
string productName = "Lenovo Legion Laptop";
int counter = 5;
string output = $"Today, {productName}, has been sold {counter} times.";
رشته های الحاق شده باید لیترال های زمان کامپایل رشته ای در نظر گرفته شوند
رشته های Interpolate شده را می توان به عنوان یک راه بسیار خوب برای ساخت قالب های رشته ای در نظر گرفت که می توان از آنها برای ارزیابی رشته ها استفاده کرد. با این حال این نکته بسیار مهم است که بدانید string interpolation در نسخه 9 سی شارپ صرفا یک سینتکس خاص است که توسط کامپایلر تولید می شود تا بتوان از آنها برای ساخت رشته ها به صورت داینامیک استفاده کرد. نکته دیگری که باید به آن دقت داشته باشید این است که رشته فرمت باید به عنوان رشته لیترال استاتیک در نظر گرفته شود. به عبارت دیگر رشته های interpolate شده شما در نسخه 9 سی شارپ در زمان کامپایل باید به عنوان لیترال های رشته ای در دسترس باشند.
استفاده از رشته های خاص در رشته های الحاقی در نسخه 9 سی شارپ
در این بخش قصد داریم نحوه استفاده از کاراکترهای خاص در رشته های interpolate شده در نسخه 9 سی شارپ را بررسی کنیم. مثال زیر یک نمونه استفاده از کاراکترهای خاص را در این رشته ها به شما نمایش می دهد:
string productName = "Lenovo Legion Laptop";
double price = 1600.00;
Console.WriteLine($"The customer asked, \"What is the price of {productName}?\"");
Console.WriteLine($"The salesman replied saying that the price of {productName} is ${price}.");
همانطور که در این مثال مشاهده می کنید استفاده از کاراکترهای خاص بسیار ساده است و شما تنها باید از بک اسلش برای انجام این کار استفاده کنید.
صحبت پایانی
String interpolation در نسخه 9 سی شارپ به شما اجازه می دهد تا مقادیر مختلف را داخل یک رشته درج کنید و فرمت رشته نتیجه خود را کنترل کنید. رشته های Interpolate شده که از نوع رشته هستند به طور کلی به رشته ها تبدیل می شوند. برعکس اگر یک رشته interpolate شده از نوع IFormattable یا FormattableString باشد کامپایلر متد FormattableStringFactory.Create را فراخوانی خواهد کرد.
استفاده از قابلیت string interpolation در نسخه 9 سی شارپ می تواند به میزان بسیار کم و جزئی تاثیر منفی روی عملکرد برنامه های شما داشته باشد. با این حال نسخه اخیر دات نت تا حد زیادی این قابلیت را بهینه سازی کرده است و همین عامل نیز باعث شده تا انعطاف پذیری توسعه دهندگان در استفاده از این قابلیت به میزان زیادی افزایش پیدا کند.
- C#.net
- 1k بازدید
- 1 تشکر