التعويض عن النصوص String Interpolation في سي شارب 6:
يمكن تشبيك النصوص في إصدارات سي شارب السابقة لدوت نت
2015 باستخدام العلامة + .. انظر المثال التالي (بافتراض أن لدينا متغيرات أسماؤها
Time، Imp، Duration، FriendName):
var T = Time.ToString("h:mm
tt\r\n");
var D = Duration.ToString("h\:m");
var E = (Time +
Duration).ToString("h:mm tt");
var Msg = "You have " + Imp + " meeting with " +
FriendName + "\r\n"
+ "at " + T + " for " +
D + ".\r\n" +
" ends at " + E;
MessageBox.Show(Msg);
إذا لم يكن يعجبك تعقيد
كود التشبيك السابق، فقد سهلت دوت نت 2015 هذه العملية كثيرا، بالسماح بكتابة اسم
المتغير وصيغة تنسيقه داخل النص مباشرة.. بهذه الطريقة يمكن اختصار الكود السابق
إلى ما يلي:
var Msg =
$@"You have
{Imp} meeting
with {FriendName}
at {Time:h:mm
tt}
for {Duration:h\:m}
ends at {Time
+ Duration:h:mm tt}";
MessageBox.Show(Msg);
لاحظ ما يلي:
-
يمكنك تقسيم النص الموضوع بين علامتي التنصيص على أكثر من سطر مباشرة بدون الحاجة
إلى الرمز \r\n، بشرط وضع الرمز @ أمام علامة التنصيص، لإخبار سي شارب أن كل رمز في النص (بما في
ذلك السطر الجديد) سيستخدم كحرف وليس كرمز وظيفي.. أي أن السطور التي تضيفها ضمن
النص في محرر الكود، ستكون جزءا منه عند عرضه.. ولا تضِف مسافات في بداية كل سطر
لتنسيق النص في محرر الكود، لأنها ستظهر في النص عند عرضه!
-
إذا وضعت الرمز $ أيضا قبل علامة التنصيص، يمكنك وضع أي متغير داخل النص بين قوسين
متعرجين {}
وسيتم التعويض عنه بقيمته عند تنفيذ البرنامج.
- يمكنك استخدام الرمز @ بمفرده، أو الرمز $ بمفرده.. لكن إذا استخدمتهما معا (كحالتنا هذه) فيجب
أن تكتب $ تليها @.. لو عكست الترتيب فستعطيك C#
خطأ.
- إذا أردت استخدام صيغة تنسيق معينة للنص الموجود في
المتغير، فضع بعده نقطتين متعامدتين : ثم اكتب صيغة التنسيق مباشرة.
واضح طبعا أن هذا التسهيل الجديد مختصر ومريح وأسهل في
كتابته وأوضح في قراءته.
تحت الطبع:
المدخل العملي السريع إلى سي شارب 2015
بقلم م. محمد حمدي غانم
لتفاصيل أكثر عن كتبي المطبوعة:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.