PDA

View Full Version : مشکل با IComparable



Mojgan110
دوشنبه 18 دی 1385, 09:53 صبح
کلاس را از IComparable مشتق کرده ام .
حالا که میخوام پیاده سازیس کنم ، اگه اینجوری بنویسم درسته :


public int CompareTo(object obj)

ولی وقتی از اسم گذاری کامل استفاده میکنم ، غلط میگیرد :


public int IComparable.CompareTo(object obj)

غلطش هم اینه که میگه : The Modifier public is not valid for this item

omid_Ahmadi
دوشنبه 18 دی 1385, 10:09 صبح
وقتی کلاسی رو از یک Interface مشتق کنید و نام اینترفیس رو در ابتدای override کردن آیتمهای اون اینترفیس ذکر کنید (مثل کد دوم) اون آیتم فقط وقتی قابل دسترسی خواهد بود که آبجکت ایجاد شده از کلاس مورد نظر، به اینترفیس استفاده شده کست بشه.
در کد دوم (با فرض اینکه نام کلاس A است) متد CompareTo فقط زمانی قابل استفاده است که آبجکت ایجاد شده به از کلاس A به IComparable کست بشه و در حالت عادی قابل دسترسی نیست.

در این حالت باید سطح دسترسی public رو از ابتدای تعریف متد حذف کنید تا مشکل برطرف بشه.