کلمه کلیدی this در سی شارپ
کلمه کلیدی this در سیشارپ ، به نمونه فعلی کلاس اشاره دارد و برای مدیریت اعضا و ارسال شیء به متدها استفاده میشود.
کلمه کلیدی this در سیشارپ (#C)
کلمه کلیدی this در سیشارپ (#C) برای اشاره به نمونه فعلی از یک کلاس یا ساختار استفاده میشود.
این کلمه کلیدی زمانی کاربرد دارد که بخواهیم اعضای یک شیء، مانند فیلدها، متدها یا ویژگیها (Properties)، را از درون خود آن شیء دسترسی داشته باشیم.
یکی از رایجترین کاربردهای this، تمایز بین فیلدهای کلاس و پارامترهای متد یا سازنده است، بهخصوص زمانی که نام فیلد و پارامتر یکسان باشند.
برای مثال، در یک سازنده میتوان از this برای اشاره به فیلدهای کلاس استفاده کرد و آنها را از پارامترها متمایز کرد.
همچنین، از کلمه کلیدی this میتوان برای ارسال شیء فعلی به متدها، سازندههای دیگر یا دلیگیتها استفاده کرد.
در متدهای گسترش (Extension Methods)، this به شیء هدف اشاره میکند و عملکردهای جدیدی را به کلاسها اضافه میکند.
با این حال، this فقط در متدهای غیر استاتیک قابل استفاده است، زیرا متدهای استاتیک به نمونه خاصی از کلاس وابسته نیستند.
بهطور کلی، this یک ابزار قدرتمند برای مدیریت بهتر مفاهیم شیگرایی در سیشارپ است.
کاربرد کلمه کلیدی this
در سیشارپ، کلمه کلیدی this به نمونه فعلی از کلاسی که در حال اجراست اشاره میکند.
این کلمه معمولاً در موارد زیر استفاده میشود:
-
تمایز بین اعضای کلاس (مانند فیلدها و متدها) و پارامترهای متد.
-
ارسال شیء فعلی به متدها، سازندهها یا دلیگیتها.
-
فراخوانی سازندههای دیگر در همان کلاس.
-
کار با اینترفیسهای ضمنی.
🌟 آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
موارد استفاده کلمه کلیدی this
-
تمایز بین اعضای کلاس و پارامترهای متد
هنگامی که پارامتر یک متد یا سازنده، نامی مشابه با یکی از فیلدهای کلاس دارد، از this برای تمایز بین این دو استفاده میشود.
مثال:
public class Person
{
private string name;
public Person(string name)
{
this.name = name; // 'this.name' به فیلد کلاس اشاره دارد
}
public void SetName(string name)
{
this.name = name; // 'this' برای تمایز بین فیلد و پارامتر
}
}
-
ارجاع به شیء فعلی
گاهی نیاز است که شیء فعلی را به متد دیگری ارسال کنیم.
در این حالت، از this استفاده میکنیم.
مثال:
public class Calculator
{
public void Print(Calculator calc)
{
Console.WriteLine($"Object Reference: {calc}");
}
public void Show()
{
Print(this); // ارسال شیء فعلی
}
}
-
فراخوانی سازندههای دیگر در همان کلاس
با استفاده از this میتوان یک سازنده را از درون سازنده دیگر فراخوانی کرد.
این تکنیک به کاهش کدهای تکراری کمک میکند.
مثال:
public class Rectangle
{
private int width;
private int height;
public Rectangle() : this(0, 0) // فراخوانی سازنده دیگر
{
}
public Rectangle(int width, int height)
{
this.width = width;
this.height = height;
}
}
-
استفاده در اینترفیسها یا کلاسهای ضمنی
کلمه کلیدی this میتواند برای اشاره به نمونه فعلی در متدهای گسترش (Extension Methods) یا کلاسهایی که از اینترفیسها پیروی میکنند، استفاده شود.
مثال:
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string input)
{
return string.IsNullOrEmpty(input);
}
}
ویژگیهای مهم کلمه کلیدی this
-
غیرقابل استفاده در متدهای استاتیک
کلمه کلیدی this فقط در متدهای غیر استاتیک استفاده میشود، زیرا متدهای استاتیک به نمونه خاصی از کلاس وابسته نیستند.
مثال نادرست:
public class Example
{
public static void Show()
{
// Console.WriteLine(this); // خطا: 'this' در متدهای استاتیک قابل استفاده نیست.
}
}
-
کاربرد در متدهای گسترش (Extension Methods)
در متدهای گسترش، this به اولین پارامتر که شیء هدف متد است اشاره میکند.
مثال:
public static class IntExtensions
{
public static bool IsEven(this int number)
{
return number % 2 == 0;
}
}
// استفاده:
int value = 10;
Console.WriteLine(value.IsEven()); // true
-
کاربرد در کلاسهای مشتقشده
در کلاسهای مشتقشده، this همچنان به نمونه فعلی اشاره میکند، اما میتواند اعضای تعریفشده در کلاس پایه را نیز دسترسی دهد.
مثال:
public class BaseClass
{
public void Display()
{
Console.WriteLine("BaseClass Display");
}
}
public class DerivedClass : BaseClass
{
public void Show()
{
this.Display(); // فراخوانی متد کلاس پایه
}
}
فواید استفاده از کلمه کلیدی this
-
کاهش ابهام
زمانی که نام پارامتر و فیلد کلاس یکسان باشد، استفاده از this ابهام را برطرف میکند. -
ارجاع به شیء فعلی
در مواردی که نیاز به ارسال شیء فعلی به متدها یا دلیگیتها است، this بسیار مفید است. -
کاهش تکرار کد
در سازندههای زنجیرهای با this میتوان کدهای تکراری را کاهش داد. -
افزایش خوانایی کد
استفاده از this کد را واضحتر و قابلدرکتر میکند.
محدودیتهای کلمه کلیدی this
-
عدم استفاده در متدهای استاتیک
this فقط در متدهای غیر استاتیک قابل استفاده است. -
وابستگی به نمونه
کلمه کلیدی this فقط در زمینه یک نمونه از کلاس یا ساختار معنادار است.
کلمه کلیدی this در سیشارپ یکی از ابزارهای کلیدی برای مدیریت اعضای کلاس و ارجاع به شیء فعلی است.
این کلمه در مفاهیم شیگرایی مانند سازندهها، متدها، و متدهای گسترش بسیار مفید است.
استفاده صحیح از this باعث افزایش خوانایی، کاهش ابهام و تسهیل مدیریت کد در برنامههای سیشارپ میشود.
با این حال، باید توجه داشت که استفاده از آن فقط در متدهای غیر استاتیک امکانپذیر است و همیشه به نمونه فعلی از کلاس یا ساختار اشاره میکند.
مثال پروژهمحور از کلمه کلیدی this در سیشارپ
در زیر یک مثال پروژهمحور از کلمه کلیدی this در سیشارپ آورده شده است که به مدیریت یک پروژه نرمافزاری کمک میکند:
مدیریت پروژه با استفاده از this
public class Project
{
private string name;
private int duration; // مدت زمان پروژه به روز
public Project(string name, int duration)
{
this.name = name; // استفاده از this برای تمایز فیلد و پارامتر
this.duration = duration;
}
public void DisplayInfo()
{
Console.WriteLine($"Project: {this.name}, Duration: {this.duration} days"); // دسترسی به فیلدها
}
public void ExtendDuration(int extraDays)
{
this.duration += extraDays; // تغییر مقدار فیلد با this
Console.WriteLine($"{this.name} extended by {extraDays} days.");
}
}
// استفاده از کلاس در برنامه
class Program
{
static void Main(string[] args)
{
Project project = new Project("Accounting Software", 30); // ایجاد پروژه
project.DisplayInfo(); // نمایش اطلاعات پروژه
project.ExtendDuration(10); // افزایش زمان پروژه
project.DisplayInfo(); // نمایش اطلاعات بهروزرسانیشده
}
}
شرح پروژه
کلاس Project: دارای فیلدهایی برای نام پروژه و مدت زمان آن است.
سازنده: با استفاده از this مقادیر ورودی را به فیلدها اختصاص میدهد.
متدها:
()DisplayInfo: اطلاعات پروژه را نمایش میدهد.
()ExtendDuration: مدت زمان پروژه را با استفاده از this تغییر میدهد.
این کد نشان میدهد که چگونه this برای مدیریت دادههای مربوط به یک پروژه به کار میرود.




کاربران ما
شما هم نظرتون با ما دریاره “کلمه کلیدی this در سی شارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید