نحوه استفاده از کلمه کلیدی "this" در متد ثابت (Static Method)

در این مقاله چگونگی استفاده از کلمه کلیدی "this" را در یک متد ثابت شرح خواهیم داد

آکادمی برنامه نویسان ، برگزار کننده دوره های آموزش برنامه نویسی با استفاده از اساتید مجرب و حرفه ای در سراسر ایران .

[ جهت مشاهده دوره های درحال ثبت نام کلیک کنید ]

ارائه مدارک معتبر آموزشی و ورود به بازار کار .

با توجه به موضوع مقاله یک سوال پیش می آید که آیا میشود از کلمه کلیدی "this" در یک متد استفاده نمود .

پاسخ خیر است . زیرا یک متد ثابت به هیچ شئی (object) احتیاج ندارد که فرا خوانی شود و کلمه کلیدی "this" همیشه به شوی جاری از کلاس اشاره میکند .

واضح است که اگر هیچ شئی وجود نداشته باشد کلمه کلیدی نمی تواند به شئیی اشاره کند , پس ما نمی توانیم از این کلمه کلیدی در این قسمت استفاده کنیم .اما یک حالت است که ما میتوانیم از این کلمه کلیدی در متد ثابت استفاده کنیم و آن حالت "EXTENSION METHOD" می باشد .

extension method چیست ؟

یک روش یا مفهومی میباشد که در #C نسخه 3.0 اضافه شد که به ما اجازه می دهد که یک متد در کلاس جاری بدون ویرایش source code مربوط به کلاس اضافه کنیم  .

1 - ما میتوانیم از این روش عمدتاً برای گسترش عملکرد کلاس موجود اضافه کنیم .

2 - در exntension methods متد جدیدی در کلاس موجود میتوانیم اضافه کنیم بدون ویرایش source code مربوط به آن class . در ابتدا متد های مورد نظر خود را در کلاس ثتبا تعریف میکنیم , سپس آنها را به کلاسی دیگر متصل میکنیم .

3 - اولین پارامتر از extension method باید نام کلاس تعریف شده باشد , با کلمه کلیدی "this" مربوط به متدی که اضافه گردیده است .

به مثال زیر توجه فرمایید :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        public void sum(int x)
        {
            Console.WriteLine("the sum is :" + x);
        }
        static void Main(string[] args)
        {
            Program p=new Program();
            p.sum(5);
            p.sub();
        }
    }
    //extension method تعریف یک کلاس ثابت برای 
    static class Demo
    {
        public static void sub(this Program p) //this اولین پارامتر از کلمه کلیدی 
        {
         Console.WriteLine("this is sub methos");   
        }
    }
}

همانطور که در مثال بالا ذکر شد ابتدا بک کلاس ثابت تعریف میکنیم , سپس در این کلاس میتوانیم از این کلمه کلیدی استفاده کنیم .

فایل های ضمیمه