سلام
چرا در عکس زیر میگه که مقدار بازگشتی ایندکسر درون اینترفیس IList.this[int] رو درست انجام ندادم :
ولی در کلاس ControlCollection ، خود مایکروسافت ، همین کار رو کرد؟!
سلام
چرا در عکس زیر میگه که مقدار بازگشتی ایندکسر درون اینترفیس IList.this[int] رو درست انجام ندادم :
ولی در کلاس ControlCollection ، خود مایکروسافت ، همین کار رو کرد؟!
متن خطا گویاست. مقدار بازگشتی باید Object باشد.
سلام
کسی میدونه؟
عجله دارم
با سلام دوست عزیز، شما باید از نوع جنریک اینترفیس IList استفاده کنین و نوعی که مدنظرتون هست رو بهش بدین، برای مثال تو مورد شما باید نوع کلاس Control رو بهش بدین و پیاده سازی رو انجام بدین
سلام مجدد
میشه منطق اینکارتون رو توضیح بدین؟ شاید راه بهتر و اصولیتری باشه که به هدفتون برسین
ممنون . دلیل اش رو پیدا کردم
فکر میکردم که مستقیما در کلاس ControlCollection ، اینترفیس IList.this[int] رو پیاده سازی کرده که منم میخواستم همین کار رو کنم ولی این طور نبود :
دلیل اش اینه که کلاس ControlCollection ، از کلاس ArrangedElementCollection ارث بری میکنه و این کلاس ، عضو ایندکسر در اینترفیس IList رو پیاده سازی کرد . پس دیگه نیازی به پیاده سازی در کلاس فرزندش یعنی ControlCollection نداره .
در کلاس ControlCollection ، اون ایندکسر
public new virtual Control this[int index]
که hide میکرد ایندکسر
internal virtual IArrangedElement this[int index]
در کلاس ArrangedElementCollection و ایندکسر
public virtual Control this[string key]
هم که اورلودی بود برای ایندکسر دیگه در همون کلاس ControlCollection (همون ایندکسری که در خط بالا گفته شد)
ممنون