جاري التحميل...

الإخراج

غيّر الكلمة بين علامتي الاقتباس فتتغيّر الشاشة معها. النوع التعليمي ما زال Pine، ونداء الكتابة ما زال Console.WriteLine. في المرة السابقة كانت الاقتباسات تحمل pine، فكانت الشاشة pine. ضع كلمة أخرى بين نفس الاقتباسات، أضف سطر كتابة ثانيًا، ثم انظر ماذا تفعل الشاشة عندما لا ينهي سطر الكتابة السطر. أنت لا تثبّت SDK من جديد. ملاحظات الصفحة السابقة ليست في هذا العرض إلا إذا أعدتها أنت بنفسك.

الكلمة بين علامتي الاقتباس

افتح ملف Pine وابحث عن Console.WriteLine("pine");. الشاشة تُظهر الكلمة بين علامتي الاقتباس. علامتا الاقتباس نفسيهما ليستا حروفًا للشاشة. هما تعلمان أين تبدأ تلك الكلمة وأين تنتهي. غيّر الكلمة. اترك بقية السطر كما هي: Console.WriteLine يبقى، وعلامة الاقتباس المفتوحة تبقى، والمغلقة تبقى، والفاصلة المنقوطة تبقى. فقط الحروف بين الاقتباسين تتغيّر. حيث كان الملف يحمل pine، اكتب leaf، كلها حروف صغيرة. السطر الآن Console.WriteLine("leaf");. احفظ الملف. اسم الفئة ما زال Pine لأن السطر public class Pine ما زال يسمّي النوع. هذه الصفحة لا تعيد تسمية النوع.

الملف الذي تحتفظ به

احتفظ بهذا الشكل التعليمي. فيه سطر كتابة واحد، وذلك السطر يحمل leaf بين الاقتباسين. لا ملاحظة في هذا الملف. ولا سطر كتابة ثانٍ بعد.

the file you keep

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine("leaf");
    }
}

اقرأ من الأعلى وقرر ماذا يمكن أن تستقبله الشاشة. سطر using System; يجهّز الأسماء القصيرة ولا يكتب الشاشة. سطر الفئة هو public class Pine. ذلك السطر يسمّي النوع. لا يكتب الشاشة. السطر التالي هو public static void Main(). هناك يبدأ وقت التشغيل. لا كلمة من تلك الكلمات حروف للشاشة. داخل Main أمر واحد: Console.WriteLine("leaf");. Console.WriteLine هو أمر الكتابة. الاقتباسان يحملان leaf. الفاصلة المنقوطة تنهي الأمر. وقت التشغيل ينفّذ ذلك الأمر لأنه داخل Main وليس خلف //. الشاشة تستقبل leaf. لا تستقبل الاقتباسين، ولا الفاصلة المنقوطة، ولا كلمة Console، ولا كلمة Main.

شغّله بـ dotnet run في مجلد المشروع. الشاشة تُظهر leaf. سطر واحد. بلا اقتباس. بلا فاصلة منقوطة. كلمة pine ليست على الشاشة، لأن pine لم تعد بين الاقتباسين. إذا كانت الشاشة ما زالت تُظهر pine، فالاقتباسان ما زالا يحملان pine. انظر إلى الحروف بين الاقتباسين قبل أن تشغّل من جديد. أنت لا تعيد تثبيت .NET SDK لشاشة ما زالت تقول pine.

الشاشة تنسخ الحروف بين الاقتباسين كما هي. Console.WriteLine("Leaf"); يكتب Leaf بحرف L كبير. Console.WriteLine("leaf"); يكتب leaf بحرف l صغير. الملف الذي تحتفظ به يستخدم l الصغير، فشاشتها leaf وليست Leaf. والمسافة أيضًا حرف يمكن أن تظهره الشاشة إذا كتبت المسافة داخل الاقتباسين. Console.WriteLine("leaf stem"); يكتب سطرًا واحدًا، leaf stem، بالمسافة التي وضعتها بين الكلمتين. الاقتباسان لا يظهران. هذا سطر كتابة واحد، فهو سطر شاشة واحد، حتى وإن كانتا كلمتين داخله. زوج اقتباس فارغ مختلف. Console.WriteLine(""); يكتب سطرًا بلا حروف ثم ينهي ذلك السطر. الشاشة تبدو فارغة. الأمر نُفّذ. الاقتباسان ببساطة لم يحملا شيئًا. ذلك السطر الفارغ ليس الملف الذي تحتفظ به. الملف الذي تحتفظ به يحمل leaf.

سطر ثانٍ

سطر كتابة واحد يعطي سطر شاشة واحد. سطر الشاشة الثاني يحتاج سطر كتابة ثانيًا. تحت Console.WriteLine("leaf"); أضف Console.WriteLine("stem");. لكل أمر اقتباساه وفاصلته المنقوطة. leaf يبقى في الزوج الأول. stem، كلها حروف صغيرة، يدخل الزوج الثاني. وقت التشغيل ينفّذ الأمر الأول، ينهي ذلك السطر، ثم ينفّذ الأمر الثاني وينهي ذلك السطر أيضًا. ترتيب الشاشة هو ترتيب الملف. الأمر الذي كتبته أولًا هو السطر الذي تُظهره الشاشة أولًا.

هذا هو الملف الثاني. أنت تنظر إلى سطري شاشة. الملف الذي كنت تحتفظ به كان فيه سطر كتابة واحد والشاشة كانت leaf. هذا فيه سطرا كتابة. استخدمه عندما تريد رؤية هذه الشاشة، ثم أعد سطر الكتابة الواحد إن أردت الملف الذي تحتفظ به هذه الصفحة.

two lines, leaf then stem

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine("leaf");
        Console.WriteLine("stem");
    }
}

شغّل dotnet run. الشاشة تُظهر leaf، والسطر التالي من الشاشة هو stem. سطران. leaf في الأعلى لأن Console.WriteLine("leaf"); أول أمر كتابة. stem تحته لأن Console.WriteLine("stem"); هو الثاني. الاقتباسان ليسا على أي سطر. إذا كان stem في الأعلى وleaf تحته، فسطرا الكتابة في الملف بهذا الترتيب المعكوس. الشاشة لا تختار ترتيبًا لنفسها. أعد أمر stem تحت أمر leaf، احفظ، وشغّل من جديد. لا تحتاج نوع أمر جديدًا للسطر الثاني. تحتاج Console.WriteLine ثانيًا، بكلمة بين اقتباسيه.

Write لا ينهي السطر

انظر إلى نهاية أمر الكتابة الذي كنت تستخدمه. WriteLine ينتهي بالحروف Line. تلك الحروف هي نهاية السطر. الأمر يكتب الحروف بين الاقتباسين ثم ينهي السطر، فيبدأ أمر الكتابة التالي على سطر جديد. Write هو نفس مساعد الكتابة بلا تلك الحروف. Console.Write("leaf"); يكتب leaf ولا ينهي السطر. Console.Write التالي يبدأ حيث توقفت تلك الكلمة. لا شيء في الأمر يضع مسافة لك. إذا حمل الزوج الأول leaf والثاني stem ولم يحمل أي منهما مسافة، تُظهر الشاشة leafstem كسطر واحد.

هذا هو الملف الثالث. ليس الملف الذي تحتفظ به. أبقِه طويلًا بما يكفي لترى السطر الواحد leafstem. كلا الأمرين Write، لا WriteLine. لا مسافة داخل أي زوج اقتباس.

one line, leafstem

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.Write("leaf");
        Console.Write("stem");
    }
}

شغّل dotnet run. الشاشة تُظهر leafstem. سطر واحد. بلا مسافة بين leaf وstem. بلا اقتباس. leaf ما زال أولًا لأن Console.Write("leaf"); هو الأمر الأول، وstem ملتصق بعده لأن Console.Write("stem"); لا يبدأ سطرًا جديدًا. إذا رأيت leaf ثم stem على سطر ثانٍ، فالأوامر في الملف هي WriteLine لا Write. حروف Line ما زالت على الأمر، فكل أمر أنهى سطره. أزل Line من كلا الأمرين إذا كانت الشاشة التي تريدها هي الكلمة الواحدة leafstem.

البرنامج يكتب leafstem وينتهي دون إنهاء السطر. قد يرسم الطرفية موجهها على نفس السطر بعد leafstem. الموجه ملك الطرفية. ليس كلمة من ملف Pine، وليس جزءًا من السطر الذي تتحقق منه. تحقق من الحروف بين الاقتباسين: leafstem. لا تحاول مطابقة الموجه. Windows وmacOS يرسمان موجهات مختلفة، وهذه الصفحة لا تعلّم تلك الموجهات. سطر البرنامج واحد على الاثنين: leafstem، بلا نهاية سطر بعده.

المسافة يجب أن تكون داخل الاقتباس

إذا أردت مسافة على نفس السطر، فالمسافة يجب أن تكون أحد الحروف بين الاقتباسين. أمر الكتابة لن يخترعها. غيّر الأمر الأول إلى Console.Write("leaf "); بمسافة بعد f، ما زالت داخل الاقتباسين. اترك الأمر الثاني Console.Write("stem");. C# يكتب leaf، ثم يكتب المسافة التي وضعتها بعد f، ثم يكتب stem، وما زال لا ينهي السطر. الشاشة تُظهر leaf stem. المسافة التي تراها هي المسافة التي كانت داخل الاقتباس الأول. مسافة تُكتب خارج الاقتباس، بين الأمرين، مجرد فجوة في الملف. ليست حرفًا للشاشة. يمكنك كسر الأمرين على سطرين في الملف، أو وضع سطر فارغ بينهما، والشاشة ما زالت سطرًا واحدًا. فواصل الأسطر في الملف ليست نهايات أسطر على الشاشة. فقط أمر إنهاء السطر، WriteLine، ينهي سطر الشاشة. Write لا يفعل ذلك أبدًا، مهما كانت مسافات الملف حوله.

الخطأ الذي يزيل الاقتباس

الكلمة التي تُظهرها الشاشة يجب أن تجلس بين اقتباسين. الخطأ أن تحذف الاقتباسين وتترك الكلمة عارية: Console.WriteLine(leaf);. leaf بلا اقتباس ليست كلمة للشاشة. C# يقرأها كاسم، وهذا الملف لا يملك ذلك الاسم بعد. الصفحة التالية عن الأسماء. هذه الصفحة تتوقف عند الاقتباس. أبقِ هذا الشكل الرابع طويلًا بما يكفي لترى أن البناء لا يبقى هادئًا، ثم أعد الاقتباسين. هذا ليس الملف الذي تحتفظ به.

the quotes removed

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine(leaf);
    }
}

شغّل dotnet run أو ابنِ المشروع. هذه المرة يكتب المترجم خطأ. لا يبقى هادئًا. الملف ليس سليمًا، لأن leaf بلا اقتباس ولا معنى له في هذا الملف بعد. لا تحتاج كلمات ذلك الخطأ بعينها. الحقيقة المفيدة أن البناء كتب سطرًا أصلًا. عندما يكتب البناء خطأ، لا تثق بشاشة جديدة حتى يعود الملف سليمًا. أعد الاقتباسين حتى يصبح السطر Console.WriteLine("leaf"); من جديد. احفظ. شغّل من جديد. الآن البناء هادئ بما يكفي للتشغيل، والشاشة تُظهر leaf. الاقتباسان كانا الإصلاح كله. أنت لا تعيد تثبيت SDK، ولا تزيل سطر الكتابة. سطر كتابة بلا اقتباس ليس شاشة فارغة من ملاحظة. الملاحظة كانت ستُبقي البناء هادئًا. هذا الخطأ يجعل المترجم يتكلم. أبقِ عادات Java المتبقية من System.out.println مربوطة هنا بـ Console.WriteLine، وSystem.out.print بـ Console.Write. أبقِ اختراع مسارات ASP.NET بعيدًا عن هذه الصفحة.

الشاشة هي الكلمة المقتبسة

يمكنك الآن تغيير الشاشة بتغيير الحروف بين الاقتباسين. Console.WriteLine("leaf"); يكتب leaf وينهي السطر. Console.WriteLine ثانٍ يكتب السطر التالي، بترتيب الأوامر في الملف. Console.Write يكتب حروفه ولا ينهي السطر، فـ Write التالي يكمل على نفس السطر، والمسافة تظهر فقط عندما تضعها داخل الاقتباس. إذا كتب البناء خطأ على كلمة عارية، فالاقتباس ناقص. أعد الملف إلى الذي تحتفظ به عندما تنتهي من النظر إلى leafstem. سطر الكتابة في الملف الذي تحتفظ به هو Console.WriteLine("leaf"); ولا سطر كتابة ثانٍ. الصفحة التالية تعطي الكلمة اسمًا، فيستطيع سطر الكتابة استخدام ذلك الاسم بدل كلمة مقتبسة فقط.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
7
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى