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

الفئات

الفئة نوع مسمّى تعلنه بـ class. ضع public class Badge في ملف التعليم نفسه مع Pine، أو أبقِه نوعًا ثانيًا بجانب Pine. داخل Badge اكتب دالة static قصيرة باسم show تكتب ready. في Pine أبقِ Main واستدعِ Badge.show();. شغّل بـ dotnet run. يجب أن تُظهر الشاشة سطرًا واحدًا: ready. هنا لا تعدّ تنازليًا بالاستدعاء الذاتي. تُسمّي نوعًا ثانيًا وتطلب من دالته أن تكتب. ذلك النوع المسمّى الثاني — فئة ليست فقط فئة البدء — هو ما تعلّمه هذه الصفحة. أبقِ اسم الفئة العامة البادئة Pine.

النوع يجلس بجانب البادئ

حتى صفحات الدوال، كان كل عرض تقريبًا يضع Main والدوال المساعدة داخل فئة عامة واحدة باسم Pine. ذلك ما زال يعمل. هذه الصفحة تضيف فئة ثانية عمدًا. Badge اسم نوع. لا يلزم أن يكون البرنامج الذي يبدأ. Pine هو البرنامج الذي يبدأ. في هذا الشكل للمبتدئين يمكن أن يعيش النوعان في ملف واحد حتى يبقى dotnet run بسيطًا. المهم اسم النوع: Badge يملك show، وPine يطلبها.
افتح ملف Pine. اسم فئة البدء يبقى Pine. هذه الصفحة لا تعيد تسمية البادئ. احذف أي بقايا استدعاء ذاتي لـ down إن كان ذلك كل ما لديك في Main. احذف أي بقايا mark. احذف أي سطر ReadLine. الملف الذي تحتفظ به لا ينتظر الكتابة.
خارج أقواس Pine المعقوفة — وما زلت في الملف نفسه — اكتب public class Badge. داخل Badge اكتب static void show(). الجسم سطر كتابة واحد: Console.WriteLine("ready");. أبقِ void في هذه الصفحة. الدالة لا تُرجع رقمًا. تكتب كلمة فقط. لا يوجد Main داخل Badge في هذه الصفحة. ذلك مقصود. يمكن للفئة أن تحمل دوالًا دون أن تكون فئة البدء.
احفظ الملف قبل التشغيل. البرنامج المعبأ الأول يعرض Badge وحده لتقرأ النوع بوضوح. البرنامج المعبأ الثاني هو الشكل الكامل المحتفظ به مع Pine وBadge معًا.

Badge type with show

csharp
using System;

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

Pine يبدأ؛ Badge يكتب

Pine يحتفظ بـ public static void Main(). داخل Main اكتب استدعاءً واحدًا: Badge.show();. ذلك الاستدعاء يسمّي النوع Badge، ثم نقطة، ثم الدالة show. لا تكتب show(); وحدها داخل Pine ما لم تعش show أيضًا داخل Pine. في هذه الصفحة show تخص Badge، لذا يحمل الاستدعاء اسم النوع.

Pine Main calls Badge.show

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Badge.show();
    }
}

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

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

شغّله بـ dotnet run. البرنامج يكتب سطرًا واحدًا ويتوقف. لا ينتظر منك الكتابة. إن انتظر dotnet run، فما زال ReadLine في الملف. احذف ذلك السطر وأبقِ Badge.show(); في Pine مع دالة show في Badge. الشاشة تظهر ready. إن أظهرت الشاشة 3 ثم 2 ثم 1، فما زال استدعاء متبقٍ لـ down(3) يعمل. إن أظهرت الشاشة حروف Badge، فسطر الكتابة فيه علامات اقتباس: Console.WriteLine("Badge");. لا تعيد تثبيت .NET SDK من أجل شاشة تعرض السطر الخطأ.
امشِ التشغيل مرة أخرى بالترتيب. C# يبدأ عند Pine.Main. الجملة الوحيدة هناك Badge.show();. ذلك الاستدعاء يقفز إلى دالة show في Badge. داخل show، يكتب WriteLine قيمة ready. ثم تنتهي show، ولا يبقى شيء في Main، فينتهي البرنامج. لم تضع Console.WriteLine("ready"); داخل Pine في هذه الصفحة. وضعته تحت Badge وطلبته باسم النوع.

النوع بجانب الدور

اقرأ الاقتران مرة في جدول صغير. لكل فئة عمل في هذه الصفحة.

📊 type beside role

Type Role on this page
Badge type that holds show
Pine program that holds Main

خلط شائع هو كتابة show(); داخل Pine بلا بادئة Badge. بينما show موجودة فقط على Badge. عندها يبحث البناء عن show داخل Pine ولا يجدها. خلط آخر هو وضع Main على Badge فقط وإزالته من Pine وأنت ما زلت تتوقع شكل البادئ القديم — أبقِ Main على Pine لملف هذه الدرس المحتفظ به. عروض الاستدعاء الذاتي المتبقية قد تربك Main. صفِّ Main إلى Badge.show(); وأنت تتعلّم شكل النوعين. لا تحتاج down هنا.
كتابة Console.WriteLine("Badge"); داخل Pine تكتب كلمة Badge. لا تستدعي الدالة على النوع. أبقِ Badge.show(); عندما تريد سطر الكتابة الذي يعيش في Badge.

ما لا تفعله هذه الصفحة بعد

هذه الصفحة لا تكتب new Badge(). إنشاء كائن من فئة هو الصفحة التالية. هنا الاستدعاء Badge.show() — دالة static على اسم النوع نفسه. كما أنك لا تخزّن حقولًا على badge بعد. الحقول تنتظر صفحة لاحقة في هذه الوحدة. العمل الآن هو فقط النوع المسمّى بجانب البادئ، واستدعاء يستخدم اسم ذلك النوع.
يمكنك تغيير الكلمة المكتوبة داخل show إلى set وتشغيلها مجددًا. يجب أن تتبع الشاشة السلسلة التي وضعتها في Badge. Pine يبقى على الاستدعاء نفسه. طريقة أخرى لرؤية الفصل: عدّل دالة النوع، وأبقِ استدعاء البادئ.
لا تعشّش Badge داخل أقواس Pine المعقوفة. في هذه الصفحة الفئتان شقيقتان في الملف. دوال Badge تجلس داخل Badge. Main يجلس داخل Pine.

يمكنك إعلان public class Badge، ووضع static void show() داخله، واستدعاء Badge.show(); من Pine.Main. شغّل بـ dotnet run. الشاشة تظهر السطر الذي كتبته show. الفئة هي ذلك النوع المسمّى. فكّر في Badge كرفّ مُسمّى لمساعدات لا تحتاج أن تبدأ البرنامج. Pine يبقى الباب الذي تفتحه بـ dotnet run. الصفحة التالية هي objects؛ هناك تبني قيمة من فئة بـ new.

الشاشة تحمل سطر كتابة Badge

الملف الذي تحتفظ به يكتب ready عندما يستدعي Main الدالة Badge.show();. اسم Badge في الاستدعاء، وحروف Badge ليست على الشاشة كعنوان مطبوع ما لم تضعها بين علامتي اقتباس. تعشيش Badge داخل Pine ليس الشكل الذي تبنيه هذه الدرس.

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

جاهز للبدء

اختبر معرفتك

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

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

📝 التعليمات

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