کاربرد دستور this در #C

کاربرد دستور this در #C
فهرست مقاله [نمایش]

    در زبان برنامه‌نویسی سی‌شارپ، کلمه کلیدی this یکی از مفاهیم پایه‌ای اما بسیار مهم است که به شما کمک می‌کند درون کلاس‌ها و ساختارها (Struct) به نمونه جاری (Current Instance) دسترسی داشته باشید. در این مقاله، با کاربردهای مختلف this آشنا می‌شویم و با استفاده از مثال‌های عملی، درک بهتری از آن به دست می‌آوریم.

    this چیست؟

    کلمه کلیدی this به نمونه‌ای از کلاس یا ساختاری اشاره می‌کند که در حال حاضر در آن قرار داریم. به عبارت ساده‌تر، وقتی در درون متدی از یک کلاس از this استفاده می‌کنید، به شیء‌ای اشاره می‌کنید که آن متد روی آن اجرا شده است.

     

    کاربردهای متداول this در سی‌شارپ

    ✅ ۱. تشخیص بین فیلد و پارامتر هم‌نام

    گاهی ممکن است نام پارامترهای متد یا سازنده (Constructor) با فیلدهای کلاس یکسان باشد. در این موارد، برای تمایز از this استفاده می‌کنیم:

    csharp
    CopyEdit
    public class Person
    {
        private string name;
    
        public Person(string name)
        {
            this.name = name; // this.name اشاره به فیلد کلاس دارد
        }
    }
    

     

    ✅ ۲. فراخوانی سازنده‌ی دیگر در همان کلاس

    با استفاده از this می‌توانید از درون یک سازنده، سازنده‌ی دیگری را فراخوانی کنید. این کار به کاهش کد تکراری کمک می‌کند:

    csharp
    CopyEdit
    public class Rectangle
    {
        public int Width;
        public int Height;
    
        public Rectangle() : this(0, 0) { }
    
        public Rectangle(int width, int height)
        {
            this.Width = width;
            this.Height = height;
        }
    }
    

     

    ✅ ۳. ارسال شیء جاری به عنوان آرگومان

    ممکن است بخواهید شیء فعلی را به متدی دیگر یا کلاس دیگری ارسال کنید:

    csharp
    CopyEdit
    public void PrintInfo()
    {
        Logger.Log(this);
    }
    
    

    ✅ ۴. استفاده در متدهای اکستنشن (Extension Methods)

    در متدهای توسعه‌دهنده (Extension)، پارامتر اول با کلمه کلیدی this مشخص می‌شود:

    csharp
    CopyEdit
    public static class StringExtensions
    {
        public static int WordCount(this string text)
        {
            return text.Split(' ').Length;
        }
    }
    

     

    نکته: آیا می‌توان از this در کلاس‌های static استفاده کرد؟

    خیر! از آنجایی که کلاس‌های static نمونه‌سازی نمی‌شوند، نمی‌توان از this در آن‌ها استفاده کرد؛ چرا که this تنها به نمونه‌ها اشاره دارد.

     

    جمع‌بندی

    کلمه کلیدی this در سی‌شارپ ابزاری قدرتمند برای اشاره به شیء جاری است و در موارد زیادی مانند تمایز بین فیلد و پارامتر، زنجیره‌سازی سازنده‌ها و استفاده در متدهای توسعه‌دهنده کاربرد دارد. درک دقیق این کلمه کلیدی به نوشتن کدهایی تمیزتر، قابل‌فهم‌تر و قابل نگهداری‌تر کمک می‌کند.

    اطلاعات نویسنده
    • نویسنده: احسان بابائی

    ارسال دیدگاه

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


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