hamed hajiloo
hamed hajiloo
خواندن ۲ دقیقه·۲ سال پیش

امکان Raw String Literals، یکی از جذاب‌ترین‌های C# 11

قبل از C# 11 در صورتی که داخل string خود نیاز به double quotation (") داشتید یا اگر نیاز داشتید به خط بعدی بروید و یا در string interpolation نیاز داشتید در خروجی خود دقیقا مقدار curly bracket ({}) را نمایش دهید، باید آپولو هوا میکردید!


مثال ۱: قبل از C# 11

 Raw String Literals - Before C# 11
Raw String Literals - Before C# 11

خروجی

This is a "quoted text" and I go to the new line


بعد از C# 11

Raw String Literals - After C# 11
Raw String Literals - After C# 11

مثال۲: قبل از این ورژن گرفتن خروجی زیر کمی پیچیده بود:

{ "name": "Hamed" }

اما در این ورژن به سادگی زیر میتوان این خروجی را به دست آورد:

Raw String Literals for Json - C# 11
Raw String Literals for Json - C# 11



نحوه استفاده از string interpolation در این قابلیت جدید نیز کمی متفاوت است.

Raw String Literals for string interpolation - C# 11
Raw String Literals for string interpolation - C# 11


همانطور که مشاهده میکنید ۲ بار از $ و {} استفاده شده است.

خروجی

You are at {2, 2}


یکی دیگر از امکانات بسیار مفیدی که در این ویژگی C# 11 به ارمغان رسیده است، شروع Indentation از جایی هست که خط اول شروع شده است. به مثال زیر از C# 10 دقت کنید.

Raw String Literals for indented strings - Before C# 11
Raw String Literals for indented strings - Before C# 11

همانطور که (احتمالا) میدانید، خروجی این کد یک string ای است که از سمت چپ tab خورده است. اگر هم قصد داشته باشید این tab اتفاق نیفتد، حتما باید متن داخل string را از ابتدای کد شروع کنید. خوانایی این کد جالب نیست. در C# 11 شروع محتوای این string از جایی هست که """ شروع می‌شود. برای مثال اگر بخواهید این tab در C# 11 وجود نداشته باشد، می‌توانید از کد زیر استفاده کنید. در کد زیر شروع کد از جایی هست که """ شروع شده است، در نتیجه هیچ فاصله ای از سمت چپ وجود نخواهد داشت.

Raw String Literals for indented strings - After C# 11
Raw String Literals for indented strings - After C# 11



سورس کد مقاله

csharpdotnet
حامد حاجیلو هستم، یک NET Full Stack Developer.
شاید از این پست‌ها خوشتان بیاید