• 0

ممكن شرح لهذا الكود C# سي شارب

ممكن شرح للكود 

Microsoft Visual Studio C# console.WriteLine($"")

و 

Microsoft Visual Studio C# console.WriteLine(@"")

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

في المثالين الهدف هو التنسيق النصي:

1. نقوم بوضع الرمز @ للتخلص مما يسمى ب Escape Character، مثل backslash \

قومي بتجريب هذا المثال في بيئة سي شارب عندك:

Console.WriteLine("C:\Program Files\Microsoft");

ستلاحظين ان بيئة سي شارب تعطي خطأ هنا، لأن backslash تعتبر escape character، بمعنى انها في هذا المثال لا يقصد بها الرمز \ وإنما تؤخذ كرمز واحد مع الحرف الذي يليها:

\P

لاتعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ

\M

أيضا لا تعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ ايضا

ولكي تتضح الصورة اكثر، نلاحظ المثال التالي:

Console.WriteLine("C:\Program Files\Microsoft\n");

سنلاحظ هنا ان سي شارب لم تعترض على n\ لانها تعني سطر جديد! أي ان سي شارب قامت بالنظر إلى backslash وشاهدت الحرف الذي يليها، واذا لم يكن من ضمن الرموز المعرفة في سي شارب، فسيظهر الخطأ.

طبعا لحل هذه المشكلة، نقوم بإضافة backslash اضافي، كما يلي:

Console.WriteLine("C:\\Program Files\\Microsoft\n");

الآن سي شارب لن تعترض على استخدم backslash بهذه الطريقة.

لكن يمكننا التخلص من هذا الـ backslash الاضافي، فقط باخبار سي شارب ذلك، عن طريق وضع الرمز @ بداية النص:

Console.WriteLine(@"C:\Program Files\Microsoft");

الآن ايضا سي شارب لن تعترض.

 

2. نقوم بوضع الرمز $ لسهولة التنسيق النصي ضمن سي شارب. مثلا 

Console.WriteLine("The sum of " + 4 + " and " + 5 + " = " + 9 +"");

هذه طريقة التنسيق التقليدية في سي شارب. ونلاحظ انها صعبة الفهم والتتبع خاصة في حال وجود اخطاء، لذلك افترضت سي شارب، ان نقوم بعمل تنسيق نصي مناسب اكثر، وهو بدل ان نضع الرقم 4 مباشرة بهذا الشكل، نضع رمز او مؤشر مكانه، ثم نقوم باستبدال هذا الرمز او المؤشر بالرقم 4 لاحقاً كما يلي:

Console.WriteLine("The sum of {0} and {1} = {2}", 4, 5, 9);

الآن نلاحظ ان التنسيق اصبح اكثر وضوحاً! وسيتم استبدال الرمز {0} بالرقم 4 لاحقاً.

يمكن استخدام هذا النمط من التنسيق خارج جملة Console.WriteLine من خلال استخدام الدالة string.Format

var result = string.Format("The sum of {0} and {1} = {2}", 4, 5, 9);

لكن مؤخراً قامت سي شارب باختصار هذه الصيغة ايضا كونها لا زالت تحمل بعض التعقيد او الغموض، فمثلا لو أردت ان اعرف ما هي القيمة التي سيتم استبدالها عند الرمز {2} سأقوم بعد المتغيرات 4 و 5 حتى اعثر على 9! لكن ماذا لو كان لدي 20 متغير او اكثر، هنا سيصعب تتبع البيانات!

الحل كان باستخدام الرمز $ والذي يسبق التنسيق النصي، مع هذا الرمز سأتخلص من الدالة string.Format اولاً، ثم بدل ان أضع {2} وأقوم لاحقا باستبدالها بالرقم 9، سأقوم بوضع 9 مباشرة ضمن القوسين كما يلي:

var result = $"The sum of {4} and {5} = {9}";

طبعاً في جميع الحالات النتيجة ستكون واحدة، لكن الهدف هو تسهيل العمل على المطور. 

لذلك تسمى جميع هذه الاختصارات والتكتيكات ب Syntactic Sugar او التجميل اللغوي، لانها فعليا لا تؤثر على المعنى ولكن على الشكل فقط!

 

بالتوفيق،،،

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

علامة @ تساعد في التخلص من // فيمكنك فقط كتابة /  هذا هو المختصر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن