PDA

View Full Version : سوال: از متد tostring کسی اطلاعاتی داره؟



mohsen_namad
شنبه 04 اردیبهشت 1389, 18:29 عصر
من میدونم که متد tostring چه کاری میکنه ، فقط می خواستم ببینم این متد به چه کلاسی ربط داره و ربطش با چند ریختی چیه.در کل پشت پرده چی کار می کنه .

Alireza_Salehi
شنبه 04 اردیبهشت 1389, 18:37 عصر
همه کلاس ها از Object ارث می برند و کلاس Object چند متد دارد که یکی از آنها ToString است.

وقتی بخواهد کلاسهای مشتق شده در تعریف کردن یا نکردن متدی از کلاس پایه مختار باشند آنرا به صورت Virtual تعریف می کنند و کلاس مشتق شده در صورت نیاز می تواند متد مورد نظر را با استفاده از کلمه کلیدی override مجددا پیاده سازی کند. این یک نمونه از کاربرد های چند ریختی است.


پشت پرده هم کاری نمیکنه، هر کلاسی با توجه به ساختارش محتویاتش رو به یک رشته تبدیل میکنه ....

mohsen_namad
شنبه 04 اردیبهشت 1389, 18:46 عصر
میشه بیشتر توضیح بدین (اگه منبعی هست اطف کنید ممنون میشم)

Alireza_Salehi
شنبه 04 اردیبهشت 1389, 18:49 عصر
دوره مقدماتی برنامه نویسی شی گرا در سی شارپ را بگذرانید...

اولین کتاب فارسی هم: آموزش گام به گام برنامه نویسی سی شارپ - جعفرنژاد قمی- انتشارات علوم رایانه- ویراست سوم

کتاب انگلیسی : Professional C# 2008, Wrox

mohsen_namad
شنبه 04 اردیبهشت 1389, 19:02 عصر
میشه بشتر درمورد متنی که نوشتین توضیح بدین؟

Alireza_Salehi
شنبه 04 اردیبهشت 1389, 19:19 عصر
کلاس پایه : کلاسی که از آن ارث می برند
کلاس مشتق شده: کلاسی که از یک کلاس پایه ارث برده است

مثال کلاس پایه:
public class mybaseclass{
public virtual String ToString()
{}
}

مثال کلاس مشتق شده:
public class myderivedclass : mybaseclass{

}

در این حالت اگر یک نمونه از myderivedclass بسازید متد ToString را خواهد داشت چون از کلاس پایه به ارث برده است و خروجی آن در کلاس پایه مشخص می شود.

حالا فرض کنید کلاس مشتق شده را اینجوری تعریف کنیم:

public class myderivedclass : mybaseclass{
public override String ToString()
{}
}
در این حالت اگر یک نمونه از کلاس myderivedclass بسازیم باز هم متد ToString را دارد ولی این دفعه خودش آن را پیاده کرده است.


مثلا روال عادی این است که متد ToString کلاس Object نوع کلاس را به صورت رشت هبرمی گرداند حالا اگر کلاسی بخواهد خودش چیز دیگری به جای نوع شی برکرداند متد ToString را مجدد تعریف می کند، طبق سلیقه خودش.
اگر باز هم متوجه نشدید کتاب فارسی ذکر شده فصل 6 و 7 را بخوانید.

این تنها کاربرد چند ریختی نیست.