ورود

نسخه کامل مشاهده نسخه کامل : نیاز به توضیح در مورد اینترفیس IComparable



Shervan360
26-01-2020, 11:14
با درود و خسته نباشید

من تا حالا هر اینترفیسی که پیاده کردم جلوی نام یک کلاس پیاده کردمش و زیرش هم تابع مورد نیازش رو پیاده کردم

الان این مثال داره اینترفیس رو برای یک تابع پیاده میکنه؟ چطور میشه؟ و اینکه تابع CompareTo رو هم درنهایت ازش استفاده نکرده

مگر نه اینکه اینترفیس ها فقط زمانی میتونن تعریف بشن که جلوی نام یک کلاس نوشته بشن؟

سپاس فراوان


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
05-02-2020, 01:16
سلام

... هر اینترفیسی که پیاده کردم جلوی نام یک کلاس پیاده کردمش ...
بله درست است.
برای پیاده سازی/implementation باید بعد نام class یا struct نام intreface آورده شود.
( البته سه مورد استثنا جهت تنبل بازی و راحتی کار برنامه نویسی داریم که ارتباطی به سوال فعلی شما ندارد. )


... این مثال داره اینترفیس رو برای یک تابع پیاده میکنه؟ ...
خیر در مثال شما هیچ پیاده سازی/implementation صورت نگرفته.
این کار در مثال شما نامش "شرط Generic ای" است.
دقت کنید، قبلش کلمه where هم آمده، یعنی "در صورتیکه که" ... "در شرایطی که" ...

در این تابع داریم "شرط" میگذاریم، دقت کنید:
میگوییم تابع FindMin ما فقط وقتی کار میکند که T حتما IComparable را پیاده سازی کرده باشد.

پیاده سازی انجام نداده ایم، گفته ایم T باید این کار را کرده باشد.
ما با T هایی کار میکنیم که این کار را کرده باشند.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


... تابع CompareTo رو هم درنهایت ازش ...
استفاده کرده.
متغییر min از جنس T است
شرط کرده ایم که تابع ما وقتی کار میکند که جنس T واسط IComparable را پیاده سازی کرده باشد
پس متغییر min تابع CompareTo را خواهد داشت !

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.