در زبان برنامهنویسی سیشارپ، کلمه کلیدی 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
در سیشارپ ابزاری قدرتمند برای اشاره به شیء جاری است و در موارد زیادی مانند تمایز بین فیلد و پارامتر، زنجیرهسازی سازندهها و استفاده در متدهای توسعهدهنده کاربرد دارد. درک دقیق این کلمه کلیدی به نوشتن کدهایی تمیزتر، قابلفهمتر و قابل نگهداریتر کمک میکند.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید