PDA

View Full Version : معنای دقیق کلمه کلیدی this



hasan1896
پنج شنبه 06 آبان 1389, 21:51 عصر
با سلام میخام بدونم this دقیقا چیه؟ آیا اشاره گره؟ در ضمن یه قطعه کد توی کتاب Beginning Visual C#‎ 2010 دیدم که معنی اون رو نمیفهمم لطفا در این زمینه توضیح بدید. ممنون :قهقهه:

public class MyClass
{
private int someData;
public int SomeData
{
get
{
return this.someData;
}
}
}

adelisardo
پنج شنبه 06 آبان 1389, 21:59 عصر
با سلام
دوست عزیز کلمه this دقیقا به شی جاری اشاره می کند ، به این معنی که اگر بعدا یک نمونه از این کلاس ( شی ) ساخته شد کلمه this در آن کلاس به همان نمونه اشاره می کند برای مثال اگر تکه کد زیر رو شما داشته باشید :



MyClass obj = new MyClass();
کلمه this در این مثال یعنی دقیقا obj .
موفق باشید

sds1920
جمعه 07 آبان 1389, 10:37 صبح
با سلام میخام بدونم this دقیقا چیه؟ آیا اشاره گره؟ در ضمن یه قطعه کد توی کتاب Beginning Visual C#‎‎‎‎ 2010 دیدم که معنی اون رو نمیفهمم لطفا در این زمینه توضیح بدید. ممنون :قهقهه:

public class MyClass
{
private int someData;
public int SomeData
{
get
{
return this.someData;
}
}
}

در مورد this دوستمون خوب توضیح دادند.this اشاره گر به همون کلاسی هست که درش مشغول به کار هستید.
ولی در مورد قطعه کد.
این قطعه کد یک کلاس تعریف می کند که دارای یک عضو و یک خاصیت یا property وابسته به این عضو است.
خاصیت ها برای این منظور استفاده می شوند که دسترسی کاربر برنامه نویس به اعضای کلاس کنترل شود.برای مثال شما کلاسی را ایجاد می کند که نمی خواهید مثلا کسی مقدار عضو x آن را تغییر دهد و فقط بتواند آن را ببیند.برای این منظور شما باید یک خاصیت فقط خواندنی ایجاد کنید.
خاصیت ها 3 نوع هستند.
فقط خواندنی
فقط نوشتنی
خواندنی-نوشتنی
برای پیاده سازی این سه حالت از 2 بلوک get و set استفاده می کنند.
بلوک get حالت خواندنی را پیاده ساری می کند و بلوک set حالت نوشتنی را پیاده سازی می کند.
نحوه تعریف خاصیت یا Property به این صورت است.


private DataType memberClass;
Public DataType PropertyName
{
get
{
return memberClass;
}
set
{
member=value;
}
}


چندتا نکته هست که باید در مورد خاصیت ها بگم.
1-DataType نوع ورودی و خروجی خاصیت را مشخص می کند.یعنی شما همواره یک نوع دادهای می توانید به خاصیت بفرستید یا از آن بگیرید.

2-معمولا بهتر است خاصیت را public و memberClass که خاصیت به آن وابسته است را private تعریف کنید.

3-وجود بلوک های get و set اختیاری است ولی باید یکی از آنها حتما باشد.

4-بلوک get باید شامل کلمه return باشد تا بتواند مقداری را برگرداند.

5-کلمه value در بلوک set استفاده می شود و مقداری را شامل می شود که به خاصیت ارسال شده است.

6-می توانید در بلوک های get و set عملیات انجام دهید.

من سعی کردم تمام چیزی که می دونستم رو براتون توضیح بدم.
اگه کم بود امیدوارم سایر دوستان کمبود منو جبران کنند.
موفق باشید.

mohsensaghafi
جمعه 07 آبان 1389, 13:25 عصر
سلام دوستان.
اگر تعریف دقیقی از this بخواهید می توان اینگونه گفت که this اشاره گری است که به شئی اشاره می کنید که متد بر روی آن اجرا شده است.
در واقع استفاده this فقط در متد ها و توابع کلاس است. در زمان اجرا این متد ها بر روی یکی از اشیاء کلاس اجرا می شوند. در آن زمان، this به آن شئی اشاره می کند که متد بر روی آن اجرا شده است.
موفق باشید و پیروز