تمرين - التحقيق في أساسيات تنسيق السلسلة
- 20 دقائق
في هذه الوحدة، ستتعلم أساليب لتنسيق السلاسل للعرض الفعال، خاصة بالنسبة للحالات التي تستخدم متغيرات متعددة.
إعداد بيئة الترميز الخاصة بك
تتضمن هذه الوحدة أنشطة عملية ترشدك خلال عملية إنشاء التعليمات البرمجية التوضيحية وتشغيلها. يتم تشجيعك على إكمال هذه الأنشطة باستخدام Visual Studio Code كبيئة تطوير. يساعدك استخدام Visual Studio Code لهذه الأنشطة على أن تصبح أكثر راحة في كتابة التعليمات البرمجية وتشغيلها في بيئة مطور يستخدمها المحترفون في جميع أنحاء العالم.
إشعار
إذا كنت قد أكملت وحدات Microsoft Learn النمطية الأخرى في سلسلة C# هذه، فربما تكون قد أنشأت بالفعل مجلد مشروع لعينات التعليمات البرمجية. إذا كان الأمر كذلك، يمكنك تخطي القسم التالي من الخطوات، وحذف التعليمات البرمجية Project.cs في الملف المستخدم في تمرين سابق.
فتح Visual Studio Code. يمكنك استخدام القائمة Windows (أو مورد مكافئ لنظام تشغيل آخر) لفتح Visual Studio Code.
في قائمة Visual Studio Code File ، حدد Open Folder.
في مربع الحوار فتح مجلد ، انتقل إلى مجلد سطح مكتب Windows. إذا كان لديك موقع مجلد مختلف حيث تحتفظ بمشاريع التعليمات البرمجية، يمكنك استخدام موقع المجلد هذا بدلا من ذلك. لهذا التدريب، الشيء المهم هو أن يكون لديك موقع يسهل تحديد موقعه وتذكره.
في مربع الحوار فتح مجلد ، حدد تحديد مجلد. إذا رأيت مربع حوار أمان يسألك عما إذا كنت تثق بالمؤلفين، فحدد نعم.
في قائمة Visual Studio Code Terminal ، حدد New Terminal. لاحظ أن موجه الأوامر في لوحة Terminal يعرض مسار المجلد للمجلد الحالي. على سبيل المثال:
C:\Users\someuser\Desktop>في موجه الأوامر Terminal، لإنشاء تطبيق وحدة تحكم جديد في مجلد محدد، اكتب dotnet new console -o ./CsharpProjects/TestProject ثم اضغط على Enter. يستخدم أمر .NET CLI هذا قالب برنامج .NET لإنشاء مشروع تطبيق وحدة تحكم C# جديد في موقع المجلد المحدد. ينشئ الأمر مجلدات CsharpProjects وTestProject نيابة عنك، ويستخدم TestProject كاسم للملف
.csproj.في لوحة EXPLORER، قم بتوسيع المجلد CsharpProjects . يجب أن تشاهد مجلد TestProject وملفين، ملف برنامج C# المسمى Program.cs وملف مشروع C# يسمى TestProject.csproj.
في لوحة EXPLORER، لعرض ملف التعليمات البرمجية في لوحة المحرر، حدد Program.cs.
حذف أسطر التعليمات البرمجية الموجودة. يمكنك استخدام مشروع وحدة تحكم C# هذا لإنشاء نماذج التعليمات البرمجية وبنائها وتشغيلها أثناء هذه الوحدة النمطية.
أغلق لوحة Terminal.
ما هو التنسيق المركب؟
يستخدم التنسيق المركب العناصر النائبة المرقمة داخل سلسلة. في وقت التشغيل، يتم حل كل شيء داخل الأقواس إلى قيمة يتم تمريرها أيضا بناء على موضعها.
يستخدم هذا المثال للتنسيق المركب أسلوبا Format() مضمنا في string الكلمة الأساسية لنوع البيانات. تحديث التعليمات البرمجية الخاصة بك في محرر التعليمات البرمجية Visual Studio كما يلي:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
إذا قمت بتشغيل هذه التعليمات البرمجية، فستلاحظ الإخراج التالي.
Hello World!
هناك بعض الأشياء الهامة التي يجب ملاحظتها حول هذه التعليمة البرمجية.
- تتضمن أنواع البيانات والمتغيرات الخاصة بنوع بيانات معين "أساليب المساعد" المضمنة لتسهيل مهام معينة.
- تشكل السلسلة
"{0} {1}!"الحرفية قالب، يتم استبدال أجزاء منه في وقت التشغيل. - يتم استبدال الرمز المميز
{0}بالوسيطة الأولى بعد قالب السلسلة، وبعبارة أخرى، قيمة المتغيرfirst. - يتم استبدال الرمز المميز
{1}بالوسيطة الثانية بعد قالب السلسلة، وبعبارة أخرى، قيمة المتغيرsecond.
إشعار
قد تعتقد أنه من الغريب البدء بالعدد 0. في الواقع هذا أمر شائع للغاية في تطوير البرمجيات. كلما كان هناك تسلسل من العناصر التي يمكن تحديدها باستخدام رقم، عادة ما سيبدأ الترقيم عند 0.
تحديث التعليمات البرمجية الخاصة بك كما يلي:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لتشغيل التعليمات البرمجية الخاصة بك. ينبغي أن تشاهد المخرج التالي:
World Hello! Hello Hello Hello!
وهناك بعض الملاحظات حول هذه الأمثلة:
- بالنسبة إلى العبارة الأولى
Console.WriteLine()، لاحظ أنه يمكن ترتيب الرموز المميزة بأي ترتيب. يحتوي نموذج التعليمات البرمجية على{1}قبل{0}. - بالنسبة إلى العبارة الثانية
Console.WriteLine()، لاحظ أنه يمكن إعادة استخدام الرموز المميزة بثلاثة مثيلات من{0}. أيضا، لا يتم استخدام الوسيطة المتغيرة الثانية،second. ومع ذلك، لا تزال التعليمات البرمجية تعمل دون خطأ.
ما هو استنتاج السلسلة؟
استنتاج السلسلة هو تقنية تبسط التنسيق المركب.
بدلاً من استخدام رمز مميز مرقم وتضمين القيمة الحرفية أو اسم المتغير في قائمة الوسائط إلى String.Format() أو Console.WriteLine()، يمكنك فقط استخدام اسم المتغير داخل الأقواس المعقوفة.
لكي تستوفي سلسلة القيم يجب أن تبدأها بالتوجيه
$. الآن، قم بإنشاء نفس الأمثلة من وقت سابق باستخدام استنتاج السلسلة بدلا من التنسيق المركب. تحديث التعليمات البرمجية الخاصة بك كما يلي:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لتشغيل التعليمات البرمجية الخاصة بك. ينبغي أن تشاهد المخرج التالي:
Hello World! World Hello! Hello Hello Hello!
إشعار
إذا نظرت إلى أمثلة التعليمات البرمجية في الكتب وعلى الإنترنت، من المحتمل أن ترى كلا من التنسيق المركب واستنتاج السلسلة المستخدم، ولكن بشكل عام يجب عليك اختيار استنتاج السلسلة.
تنسيق العملة
يمكن استخدام التنسيق المركب واستيفاء السلسلة لتنسيق القيم لعرض لغة وثقافة معينة. في المثال التالي، :C يتم استخدام محدد تنسيق العملة لتقديم price والمتغيرات discount كعملة. تحديث التعليمات البرمجية الخاصة بك كما يلي:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
إذا قمت بتنفيذ هذه التعليمة البرمجية على كمبيوتر تم تعيين لغة عرض Windows الخاصة به إلى "الإنجليزية (الولايات المتحدة)"، فستلاحظ الإخراج التالي.
Price: $123.45 (Save $50.00)
لاحظ كيف أن إضافة :C إلى الرموز المميزة داخل الأقواس المعقوفة تُنسق الرقم كعملة بغض النظر عن استخدام int أو decimal.
إشعار
ماذا يحدث إذا لم تكن بلدك/منطقتك ولغتك معروفة؟ إذا قمت بتشغيل التعليمات البرمجية السابقة في محرر .NET "في المستعرض"، مثل TrydotNet، فسترى الإخراج التالي: Price: ¤123.45 (Save ¤50.00). يتم استخدام الرمز ¤ بدلا من الرمز لأموال بلدك/منطقتك. هذا رمز عام يستخدم للدلالة على "العملة" بغض النظر عن نوع العملة. راجع هذا الرمز في محرر .NET لأنه يتجاهل الموقع الحالي.
كيفية تأثير بلد/منطقة المستخدم ولغته على تنسيق السلسلة
ماذا لو قمت بتنفيذ التعليمات البرمجية السابقة على كمبيوتر في فرنسا تم تعيين لغة عرض Windows الخاصة به إلى الفرنسية؟ في هذه الحالة سوف تشاهد الإخراج التالي.
Price: 123,45 € (Save 50,00 €)
السبب في الإخراج السابق "€" هو أن ميزة تنسيق عملة السلسلة تعتمد على إعداد الكمبيوتر المحلي للثقافة. وفي هذا السياق، يشير مصطلح "الثقافة" إلى البلد/المنطقة ولغة المستخدم النهائي. التعليمة البرمجية للثقافة هي سلسلة من خمسة أحرف تستخدمها أجهزة الكمبيوتر لتحديد موقع المستخدم النهائي ولغته. يضمن رمز الثقافة تقديم معلومات معينة مثل التواريخ والعملات بشكل صحيح.
على سبيل المثال:
- التعليمة البرمجية للثقافة للمتحدث باللغة الإنجليزية في الولايات المتحدة الأمريكية هي
en-US. - التعليمة البرمجية للثقافة للمتحدث باللغة الفرنسيّة في فرنسا هي
fr-FR. - التعليمة البرمجية للثقافة للمتحدث باللغة الفرنسيّة في كندا هي
fr-CA.
تؤثر الثقافة على نظام الكتابة والتقويم المستخدم وترتيب فرز السلاسل وتنسيق التواريخ والأرقام (مثل عملة التنسيق).
لسوء الحظ، فإن التأكد من أن التعليمات البرمجية الخاصة بك تعمل بشكل صحيح على جميع أجهزة الكمبيوتر بغض النظر عن البلد/المنطقة أو لغة المستخدم النهائي أمر صعب. تُعرف هذه العملية باسم التوطين (أو العولمة). تعتمد الترجمة على العديد من العوامل التي لم تتم مناقشتها في هذه الوحدة النمطية، ولكن ببساطة، قد يستخدم بناء جملة تنسيق السلسلة تنسيقا مختلفا اعتمادا على ثقافة المستخدم.
تنسيق الأرقام
عند العمل مع البيانات الرقمية، قد تحتاج إلى تنسيق الرقم لسهولة القراءة عن طريق تضمين فواصل لتحديد الآلاف والملايين والمليارات وما إلى ذلك.
N يجعل محدد التنسيق الرقمي الأرقام أكثر قابلية للقراءة. تحديث التعليمات البرمجية الخاصة بك كما يلي:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
إذا كنت تعرض هذا من en-US الثقافة، فستلاحظ الإخراج التالي.
Measurement: 123,456.79 units
بشكل افتراضي، N يعرض محدد التنسيق الرقمي رقمين فقط بعد الفاصلة العشرية.
إذا كنت تريد عرض مزيد من الدقة، يمكنك القيام بذلك عن طريق إضافة رقم بعد محدد. ستعرض التعليمة البرمجية التالية أربعة أرقام بعد الفاصلة العشرية باستخدام محدد N4. تحديث التعليمات البرمجية الخاصة بك كما يلي:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
إذا كنت تعرض هذا من en-US الثقافة، فستلاحظ الإخراج التالي.
Measurement: 123,456.7891 units
تنسيق النسب المئوية
P استخدم محدد التنسيق لتنسيق النسب المئوية والتقريب إلى منزلتين عشريتين. إضافة رقم بعد ذلك للتحكم في عدد القيم المعروضة بعد الفاصلة العشرية. تحديث التعليمات البرمجية الخاصة بك كما يلي:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
إذا كنت تعرض هذا من en-US الثقافة، فستلاحظ الإخراج التالي.
Tax rate: 36.79%
الجمع بين نهج التنسيق
يمكن لمتغيرات السلسلة تخزين السلاسل التي تم إنشاؤها باستخدام تقنيات التنسيق. في المثال التالي، يتم تنسيق الأرقام العشرية ونتائج الرياضيات العشرية وتخزينها في yourDiscount السلسلة باستخدام التنسيق المركب.
تحديث التعليمات البرمجية الخاصة بك كما يلي.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
Console.WriteLine(yourDiscount);
إذا كنت تعرض هذا من en-US الثقافة، فستلاحظ الإخراج التالي.
You saved $7.56 off the regular $67.55 price.
يمكنك دمج سلاسل متعددة منسقة. بناء على التعليمات البرمجية السابقة تسلسل النسبة المئوية المحسوبة باستخدام استنتاج السلسلة بدلا من سلسلة السلسلة عن طريق إدراج yourDiscount += $"A discount of {(price - salePrice)/price:P2}!"; في التعليمات البرمجية على السطر قبل Console.WriteLine().
إشعار
لا تحتاج إلى استخدام String.Format() مع نهج استنتاج السلسلة هذا.
تحديث التعليمات البرمجية الخاصة بك كما يلي.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
yourDiscount += $"A discount of {((price - salePrice)/price):P2}!"; //inserted
Console.WriteLine(yourDiscount);
إذا كنت تعرض هذه الوحدة من en-US الثقافة، فستلاحظ الإخراج التالي.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
خلاصة
فيما يلي أهم الاستنتاجات من هذه الوحدة حول تنسيق السلسلة:
- يمكنك استخدام التنسيق المركب أو استنتاج السلسلة لتنسيق السلاسل.
- باستخدام التنسيق المركب، يمكنك استخدام قالب سلسلة يحتوي على تعليمة برمجية أو أكثر من الرموز المميزة البديلة في النموذج
{0}. كما أنك توفر قائمة من الوسائط التي تتم مطابقتها مع الرموز المميزة البديلة استنادًا إلى ترتيبها. يعمل التنسيق المركب عند استخدامstring.Format()أوConsole.WriteLine(). - باستخدام استنتاج السلسلة، يمكنك استخدام قالب سلسلة يحتوي على أسماء المتغيرات التي تريد استبدالها محاطة بأقواس متعرجة. استخدم توجيه
$قبل قالب السلسلة للإشارة إلى أنك تريد استنتاج السلسلة. - تنسيق العملة باستخدام محدد
:C. - تنسيق الأرقام باستخدام محدد
:N. التحكم في الدقة (عدد القيم بعد الفاصلة العشرية) باستخدام رقم بعد:Nمثل{myNumber:N3}. - تنسيق النسب المئوية باستخدام
:Pمحدد التنسيق. - يعتمد تنسيق العملة والأرقام على ثقافة المستخدم النهائي، وهو رمز مكون من خمسة أحرف يتضمن بلد/منطقة المستخدم ولغته (وفقا للإعدادات الموجودة على جهاز الكمبيوتر الخاص به).
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟