الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Check between two Objects

مغلق
بدأه Ahmed H. Alawady في 19 مارس 2006 · 6 رد · 635 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أرجوا أن أتوفق في شرح الفكرة التي أريد حلها

يوجد لدي 3 متغيرات Object Type ، إثنين منهما (قيمة قصوى وقيمة صغرى) وهما متغيران أي مرة يكونوا DateTime و مرة Integer ومرة Decimal .... ألخ

والثالث هو القيمة الذي أريد التأكد من قيمتة هل هو يتوسط القيمتين السابقتين وهو سوف يكون مشابه لهم في النوع .

أولا : عند إستخدام

if(testobject > MinObject && testObject < MaxObject)

فإن الدوت نت يرفض هذا Operator بين أثنين من نوع Object

فكيف أعمل هذا مع العلم وللتكرار أن النوع يتغير في كل مرة

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#2

http://msdn.microsoft.com/library/default....eclasstopic.asp

اجعل هذه الفئات التي تريد صنعها ترث من IComparable،، أرجو أن تكون هذه مفيدة!

أو استخدم IComparer إذا كانت فئاتك لا ترث من IComparable..

بالتوفيق!

#3

السلام عليكم ورحمة الله وبركاته

جزاك الله كل خير ، لقد نجحت العملية ، ولكن شرطها أن يكون ألأثنين من نفس النوع

مثال 1 :

object x = new DateTime(2000,5,10);
 	 object y = new DateTime(2000,5,10);
 	 IComparable z = (IComparable)y;
 	 int res = z.CompareTo(x);
 	 if(res == 0)
    MessageBox.Show("Equal");
 	 else if(res > 0)
    MessageBox.Show("Big");
 	 else if(res < 0)
    MessageBox.Show("Less");

مثال 2 :

object x = 10;
 	 object y = 20;
 	 IComparable z = (IComparable)y;
 	 int res = z.CompareTo(x);
 	 if(res == 0)
    MessageBox.Show("Equal");
 	 else if(res > 0)
    MessageBox.Show("Big");
 	 else if(res < 0)
    MessageBox.Show("Less");

فجزاك الله كل خير

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#4

لماذا تقولب الشيء إلى IComparable وهو بالأساس IComparable??

أقصد يكفيك أن تكتب هذا:

int x=10;
int y=20;

if(x.compareTo(y)>0)Msg(Big);
etc....

بالتوفيق!

#5
حسام الملحم أبومازن كتب:
لماذا تقولب الشيء إلى IComparable وهو بالأساس IComparable??

أقصد يكفيك أن تكتب هذا:

int x=10;
int y=20;

if(x.compareTo(y)>0)Msg(Big);
etc....

بالتوفيق!

أخي العزيز أنا أصلا لا أملك أي متغير بنوع معروف مثل (int) أو غيرها كل ما لدي هو (object)

وكل مرة يتغير ولا أعرف هل هو DateTime أو Int أو String أو Decimal .....

لذلك أستخدم هذا

جزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#6

فعلا معك حق...

سؤال:

ما رأيك في أن تجعل المتغير IComparable بالأساس؟

IComparable x=10;
IComparable y=20;

if(x.compareTo(y)>0)Msg(Big);
etc....
#7

السلام عليكم ورحمة الله وبركاته

أخي العزيز معك حق ، ولكن هذا ليس بيدي ولكن بيد الدالة الأخرة التي ترسل لي المتغير من نوع object

لذلك أنا أستقبلهم في المتغير كما أنا عرضت وكما أنت شرحت

فجزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

هذا الموضوع مغلق.

مواضيع مشابهة