کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

متدهای استاتیک (static method) در سی شارپ

وقتی توی C# با کلاس‌ها و اعضای اون‌ها کار می‌کنی، همیشه لازم نیست برای استفاده از یک متد، از کلاس نمونه‌سازی کنی. بعضی متدها به صورت ایستا یا static تعریف می‌شن و می‌تونی اون‌ها رو مستقیماً از طریق خود کلاس صدا بزنی.

اگه در مسیر یادگیری C# هستی، آشنایی با متدهای static یکی از مفاهیمیه که کمک می‌کنه نحوه کار با کلاس‌ها و اعضای اون‌ها رو بهتر درک کنی. توی ادامه می‌خوایم ببینیم متد ایستا چطور تعریف می‌شه و چطور می‌تونیم از اون داخل و خارج از کلاس استفاده کنیم.

متدهای ایستا یا static method در واقع رفتارهای استاتیک یک کلاس هستن که برای استفاده از اون‌ها لازم نیست از کلاس یک شیء بسازیم. کافیه اسم خود کلاس رو داشته باشیم تا بتونیم متد ایستا رو از طریق اون فراخوانی کنیم.

درست مثل متغیر عضو، می‌تونیم یک متد کلاس رو هم به صورت ایستا تعریف کنیم. این متد می‌تونه به اعضای کلاس دسترسی داشته باشه؛ البته اینکه به کدوم اعضا دسترسی داشته باشه، به سطح دسترسی اون اعضا بستگی داره. در ضمن یادتون باشه که اعضای یک کلاس می‌تونن ایستا یا غیر ایستا باشن.

ایجاد متد ایستا

برای اینکه یک متد رو به صورت ایستا تعریف کنیم، کافیه کلمه کلیدی static رو سمت چپ تعریف متد قرار بدیم.

مثال:

                
public class Book
{
‎    static void CreateBook()
‎    {
‎    }
‎}

متد ایستا می‌تونه یک تنظیم‌کننده سطح دسترسی یا access modifier هم داشته باشه. در این حالت می‌تونیم کلمه کلیدی static رو قبل یا بعد از تنظیم‌کننده سطح دسترسی قرار بدیم.

مثال:

                
using System;‎

public class Book
‎{‎
‎    private static string title;‎
‎    static private string author;‎
‎    private static int    pages;‎
‎    static private double price;‎
    ‎
    static public void CreateBook()‎
‎    {‎
        title  = "Psychology and Human Evolution";‎
        author = "Jeannot Lamm";‎
        pages  = 472;‎
        price  = 24.95;‎
    }‎
    
    internal static void ShowBook()‎
    {‎
        Console.WriteLine("Book Characteristics");‎
        Console.Write("Title:  ");‎
        Console.WriteLine(Book.title);‎
        Console.Write("Author: ");‎
        Console.WriteLine(Book.author);‎
        Console.Write("Pages:  ");‎
        Console.WriteLine(pages);‎
        Console.Write("Price:  ");‎
        Console.WriteLine(price);‎
    }‎
    
    public static int Main()‎
    {‎
        return 0;‎
    }‎
‎}

همون‌طور که درباره فیلد ایستا (static field) گفتیم، برای استفاده از یک متد ایستا هم باید به محل دسترسی اون توجه کنیم. یعنی باید مشخص باشه که متد موردنظر از کجا قابل دسترسیه. وقتی از داخل یک متد ایستای دیگه در همون کلاس می‌خوایم به یک عضو ایستا دسترسی داشته باشیم، می‌تونیم فقط اسم اون عضو رو بنویسیم.

مثال:

                
using System;‎

public class Book
{‎
‎    static string title;‎
‎    static string author;‎
‎    static int pages;‎
‎    static double price;‎

‎    static void CreateBook()‎
‎    {‎
‎        title = "Psychology and Human Evolution";‎
‎        author = "Jeannot Lamm";‎
‎        pages = 472;‎
‎        price = 24.95;‎
‎    }‎

‎    static void ShowBook()‎
‎    {‎
‎        Console.WriteLine("Book Characteristics");‎
‎        Console.Write("Title:  ");‎
‎        Console.WriteLine(Book.title);‎
‎        Console.Write("Author: ");‎
‎        Console.WriteLine(Book.author);‎
‎        Console.Write("Pages:  ");‎
‎        Console.WriteLine(pages);‎
‎        Console.Write("Price:  ");‎
‎        Console.WriteLine(price);‎
‎    }‎

‎    public static int Main()‎
‎    {‎
‎        CreateBook();‎
‎        ShowBook();‎
‎        return 0;‎
‎    }‎
‎}

نتیجه

Book Characteristics
Title:  Psychology and Human Evolution
Author: Jeannot Lamm
Pages:  472‎
Price:  24.95‎

یک روش دیگه هم اینه که اول اسم کلاس رو بنویسیم، بعد یک نقطه بذاریم و در ادامه عضو موردنظر رو مشخص کنیم. به مثال زیر توجه کنید.

                
using System;‎

public class Book
‎{‎

    ... No Change‎

    static void CreateBook()‎
    {‎
        ... No Change‎
    }

    ‎static void ShowBook()‎
    {‎
        ... No Change‎
    ‎}‎

    public static int Main()‎
    {‎
        Book.CreateBook();‎
        Book.ShowBook();‎
        return 0;‎
    }‎
‎}

پس برای اینکه از بیرون کلاس به یک عضو ایستا دسترسی داشته باشیم، کافیه اول اسم کلاس رو بنویسیم، بعد یک نقطه قرار بدیم و در نهایت اسم عضو موردنظر رو وارد کنیم. مثال زیر نحوه انجام این کار رو نشون می‌ده.

                
using System;‎

public class Book
‎{‎
    ... No Change‎
    ‎
    static public void CreateBook()‎
‎    {‎
‎       ... No Change‎
‎    }‎
    ‎
    internal static void ShowBook()‎
‎    {‎
‎       ... No Change‎
‎    }‎
‎}‎

public class Exercise
‎{‎
‎    public static int Main()‎
‎    {‎
‎        Book.CreateBook();‎
‎        Book.ShowBook();‎
        
        return 0;‎
‎    }‎
‎}

اگه می‌خوای کار با کلاس‌ها، متدها و سایر مفاهیم پایه C# رو اصولی‌تر یاد بگیری، می‌تونی مسیر یادگیریت رو با یک آموزش منسجم ادامه بدی. توی دوره آموزش C# می‌تونی مفاهیم این زبان رو مرحله‌به‌مرحله یاد بگیری و مهارتت رو در برنامه‌نویسی با C# کامل‌تر کنی.

1405/06/11 20302 4671
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...