در حال بارگذاری...

کلاس‌ها

کلاس یک نوع نام‌دار است که با 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 را نگه دارید. متد عددی برنمی‌گرداند. فقط یک واژه می‌نویسد. در این صفحه داخل Badge هیچ Main نیست. عمدی است. یک کلاس می‌تواند متد نگه دارد بدون این که کلاس شروع‌کننده باشد.
پیش از اجرا فایل را ذخیره کنید. برنامهٔ جعبه‌ای اول فقط 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. داخل Pine به‌تنهایی show(); نمی‌نویسید مگر 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");. برای صفحه‌ای که خط اشتباه نشان می‌دهد 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 وجود دارد. آن‌وقت ساخت داخل Pine دنبال show می‌گردد و پیدا نمی‌کند. اشتباه دیگر گذاشتن Main فقط روی Badge و برداشتنش از Pine است در حالی که هنوز شکل شروع‌کنندهٔ قبلی را انتظار دارید — برای فایل نگه‌داشتنی این درس Main را روی Pine نگه دارید. دموهای باقی‌ماندهٔ بازگشت می‌توانند Main را گیج کنند. Main را تا Badge.show(); پاک کنید وقتی شکل دو‌نوعی را یاد می‌گیرید. اینجا به down نیاز ندارید.
نوشتن Console.WriteLine("Badge"); داخل Pine واژهٔ Badge را می‌نویسد. متد روی نوع را صدا نمی‌زند. وقتی می‌خواهید خط نوشتنی که در Badge زندگی می‌کند، Badge.show(); را نگه دارید.

این صفحه هنوز چه نمی‌کند

این صفحه new Badge() نمی‌نویسد. ساختن شیء از یک کلاس صفحهٔ بعدی است. اینجا فراخوانی Badge.show() است — یک متد static روی خود نام نوع. هنوز فیلدی روی badge هم ذخیره نمی‌کنید. فیلدها برای صفحهٔ بعدی این ماژول می‌مانند. کار الآن فقط نوع نام‌دار کنار شروع‌کننده است، و فراخوانی‌ای که از آن نام نوع استفاده می‌کند.
می‌توانید واژهٔ نوشته‌شده داخل show را به set عوض کنید و دوباره اجرا کنید. صفحه باید رشته‌ای را که در Badge گذاشته‌اید دنبال کند. Pine همان فراخوانی می‌ماند. راه دیگری برای دیدن جداسازی: متد نوع را ویرایش کنید، فراخوانی شروع‌کننده را نگه دارید.
Badge را داخل آکولادهای Pine تودرتو نکنید. در این صفحه دو کلاس در فایل خواهرند. متدهای Badge داخل Badge می‌نشینند. Main داخل Pine می‌نشیند.

حالا می‌توانید public class Badge اعلام کنید، داخلش static void show() بگذارید، و از Pine.Main با Badge.show(); صدا بزنید. با dotnet run اجرا کنید. صفحه خطی را نشان می‌دهد که show نوشته. کلاس همان نوع نام‌دار است. Badge را مثل قفسه‌ای برچسب‌دار برای کمک‌هایی بدانید که لازم نیست برنامه را شروع کنند. Pine دری می‌ماند که با dotnet run باز می‌کنید. صفحهٔ بعدی objects است؛ آنجا با new از یک کلاس مقدار می‌سازید.

صفحه خط نوشتن Badge را نگه می‌دارد

فایلی که نگه می‌دارید وقتی Main صدا می‌زند Badge.show(); مقدار ready می‌نویسد. نام Badge در فراخوانی است، و حرف‌های Badge روی صفحه به‌عنوان برچسب چاپ‌شده نیستند مگر گیومه دورشان گذاشته باشید. تودرتو کردن Badge داخل Pine شکل این درس نیست.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود