مفهوم public در سی‌ شارپ

مفهوم public در سی‌ شارپ
فهرست مقاله [نمایش]

    در دنیای برنامه‌نویسی، یکی از موضوعات کلیدی مدیریت دسترسی به اجزای مختلف برنامه است. در زبان برنامه‌نویسی سی‌ شارپ، برای تعیین میزان دسترسی به کلاس‌ها، متدها، پراپرتی‌ها و فیلدها، از مدیفایرهایی مانند public استفاده می‌شود. در این مقاله، قصد داریم مفهوم public را به صورت جامع و کاربردی بررسی کنیم تا با درک بهتری از این مدیفایر در پروژه‌های واقعی استفاده کنید.

    تعریف و کاربرد public

    public یکی از کلیدواژه‌های دسترسی در سی‌ شارپ است. با استفاده از این کلیدواژه، می‌توانید یک کلاس یا عضو کلاس (مثل متدها، خاصیت‌ها یا فیلدها) را به صورت عمومی و قابل دسترسی در تمام بخش‌های برنامه تعریف کنید. اگر یک کلاس یا عضوی از آن با public تعریف شود، از هر کجای برنامه می‌توان به آن دسترسی داشت، یعنی هیچ محدودیتی برای دسترسی به آن وجود ندارد.

    مثال اولیه از public در سی‌ شارپ

    در ادامه یک مثال ساده برای درک بهتر public ارائه شده است:

    public class MyClass
    {
        public int MyProperty { get; set; }
    
        public void MyMethod()
        {
            // اجرای کاری در متد
            Console.WriteLine("This is a public method.");
        }
    }
    

    در این کد:

    کلاس MyClass و اعضای آن یعنی MyProperty و MyMethod همگی به صورت public تعریف شده‌اند.
    این بدان معناست که این کلاس و اعضای آن در هر جای دیگری از برنامه می‌توانند مورد استفاده قرار گیرند.
    برای دسترسی به کلاس و متدهای public از بخش‌های دیگر برنامه، کافی است یک نمونه از آن ایجاد کرده و از اعضای public آن استفاده کنید:

    MyClass myObject = new MyClass();
    myObject.MyProperty = 10;
    myObject.MyMethod(); // خروجی: This is a public method.
    

    چرا از public استفاده می‌کنیم؟

    1. دسترسی در سراسر برنامه

    در پروژه‌های پیچیده و چند لایه، نیاز داریم برخی از کلاس‌ها و اعضای آن‌ها را در کل برنامه یا حتی در پروژه‌های دیگری که به برنامه اضافه شده‌اند، قابل دسترسی کنیم. برای این کار از public استفاده می‌کنیم تا مطمئن شویم که این اعضا در هر جایی از پروژه دیده می‌شوند.

    2. ارتباط بین لایه‌های مختلف برنامه

    در معماری‌های چند لایه، کلاس‌هایی مثل Domain Models یا DTOها (Data Transfer Object) نیاز به دسترسی گسترده دارند. این کلاس‌ها اغلب به عنوان پل ارتباطی بین بخش‌های مختلف یک سیستم مورد استفاده قرار می‌گیرند، بنابراین باید public باشند تا بتوانند بین لایه‌های مختلف حرکت کنند.

    3. ایجاد API‌ها و سرویس‌های عمومی

    برای توسعه APIهای REST یا دیگر سرویس‌های وب، کلاس‌ها و متدها باید به صورت عمومی (public) در دسترس باشند تا توسط کلاینت‌ها یا بخش‌های دیگر برنامه فراخوانی شوند.

    مثال‌های کاربردی public در پروژه‌های واقعی

    1. کلاس‌های دامین در معماری چند لایه

    در معماری‌های چند لایه مانند لایه دامین (Domain Layer)، کلاس‌های دامین باید در دسترس همه لایه‌ها باشند. این کلاس‌ها اطلاعات و منطق اصلی برنامه را تعریف می‌کنند و در سراسر برنامه استفاده می‌شوند.

    public class User
    {
        public string Name { get; set; }
        public string Email { get; set; }
    }
    

    در این مثال:

    کلاس User به عنوان یک کلاس دامین تعریف شده و با public مشخص شده است.
    این بدین معناست که کلاس User در همه لایه‌های برنامه قابل دسترسی است.

    2. کلاس‌های DTO در APIهای REST

    یکی از کاربردهای مهم public، تعریف کلاس‌های DTO برای انتقال داده‌ها در سیستم‌های توزیع شده و سرویس‌های API است. کلاس‌های DTO معمولاً در APIهای REST برای ارسال و دریافت داده‌ها بین سرور و کلاینت استفاده می‌شوند. این کلاس‌ها باید public باشند تا در بخش‌های مختلف برنامه و در زمان انتقال داده‌ها، قابل دسترس باشند.

    public class UserDto
    {
        public string Name { get; set; }
        public string Email { get; set; }
    }
    

    در این مثال:

    UserDto یک کلاس انتقال داده است که اطلاعات مربوط به کاربر را از یک نقطه به نقطه دیگر منتقل می‌کند.
    از آنجایی که این کلاس باید در APIهای مختلف و بخش‌های متفاوت برنامه قابل استفاده باشد، آن را با public تعریف کرده‌ایم.

    3. متدهای عمومی برای دسترسی در سراسر برنامه

    در برخی موارد، ممکن است متدی داشته باشید که باید در سراسر برنامه توسط بخش‌های مختلف مورد استفاده قرار گیرد. برای مثال، فرض کنید متدی برای ارسال ایمیل وجود دارد که باید از بخش‌های مختلف پروژه فراخوانی شود. این متد باید با public تعریف شود:

    public class EmailService
    {
        public void SendEmail(string to, string subject, string body)
        {
            // ارسال ایمیل
            Console.WriteLine($"ایمیل به {to} ارسال شد.");
        }
    }
    

    در این مثال:

    متد SendEmail با public تعریف شده است و می‌تواند از هر نقطه‌ای در برنامه فراخوانی شود.

    نکات مهم در مورد public در سی‌ شارپ

    public بیشترین میزان دسترسی را به اعضای یک کلاس فراهم می‌کند. هر کجا که به یک کلاس یا متد نیاز دارید که در کل برنامه قابل استفاده باشد، از public استفاده کنید.
    استفاده از public باید با دقت انجام شود. به کار بردن public برای اعضایی که نیازی به دسترسی عمومی ندارند، می‌تواند امنیت و ساختار برنامه را تضعیف کند.
    اگر نیاز به محدودیت بیشتری در دسترسی دارید، می‌توانید از دیگر مدیفایرهای دسترسی مانند private، protected یا internal استفاده کنید.

    نتیجه‌گیری

    مدیفایر public یکی از ابزارهای ضروری در سی‌ شارپ است که به شما اجازه می‌دهد تا کلاس‌ها و اعضای آن‌ها را در سراسر برنامه در دسترس قرار دهید. در پروژه‌های واقعی مانند سیستم‌های چند لایه، APIها و کلاس‌های انتقال داده، public نقش کلیدی در مدیریت دسترسی ایفا می‌کند. با استفاده از این مدیفایر، می‌توانید کنترل دقیقی بر روی دسترسی به اجزای برنامه خود داشته باشید.

    دانستن مفهوم public تنها یک قسمت از یادگیری برنامه‌نویسی  سی شارپ است. این زبان قدرتمند و پر امکانات بسیار چیزهای بیشتری برای یادگیری دارد. برای به دست آوردن دانش حرفه‌ای سی‌ شارپ، ما پیشنهاد می‌کنیم که در دوره‌های آموزش سی شارپ باگتو شرکت کنید.

    برای دریافت اطلاعات بیشتر می توانید مقاله محدوده متغیرها در سی شارپ را مطالعه نمایید.

    اطلاعات نویسنده
    • نویسنده: تیم تحریریه باگتو

    ارسال دیدگاه

    برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربری‌تان شوید


    دیدگاه کاربران