PDA

View Full Version : یه کلاس برای مقایسه



مهدی رحیم زاده
دوشنبه 21 خرداد 1386, 20:02 عصر
من یه برنامه توی سی شارپ می خوام
من می خوام تو سی شارپ یه تابع داشته باشم که تویه اون تابع یه کلاس تعریف بشه که مساوی بودنه دو نفر رو چک کنه ... که آیا نامشون .نام خانوادگیشون و شماره شناسنامه و.. مساوی است یا نه اگه مساوی هست بگه اینها باهم مساوی هستند....

حامد مصافی
دوشنبه 21 خرداد 1386, 20:14 عصر
اولاً که در تابع نمیشه کلاس تعریف کرد.
دوماً دو نفر یعنی چی؟؟ مگه در دات نت نفر داریم؟
سوماً خود شی کلاس متدی با نام IsRefrenceEqual

مهدی رحیم زاده
دوشنبه 21 خرداد 1386, 20:30 عصر
دوست عزیزم
این سئوال یکی از دوستامه که از من پرسیده !!!
راستش منم خوب متوجه سئوال نشدم ، واسه همین گذاشتمش اینجا ....
سعی میکنم همه چیزو دقیقا از اون بپرسم و براتون بگم که بتونیم یک جواب خوب و کامل به اون بدیم ...

Sorenaa_s
دوشنبه 21 خرداد 1386, 20:31 عصر
publicclass Person: IComparable

{




publicstring Name = string.Empty;
publicstring Family = string.Empty;
publicint IDNo = 0;
public Person()
{
}


publicstaticbooloperator ==(Person x, Person y)
{
if( x.CompareTo(y) == 0 )
returntrue;
else
returnfalse;
}
publicstaticbooloperator !=(Person x, Person y)
{
if( x.CompareTo(y) != 0 )
returntrue;
else
returnfalse;
}


#region



IComparable Members

publicint CompareTo(object obj)

{
if( !(obj is Person) )
return -1;
Person tmp = obj as Person;
if( tmp.Family == this.Family && tmp.Name == this.Name && tmp.IDNo == this.IDNo )
return 0;
return 1;
}
#endregion
}












Person p1 = new Person();
Person p2 = new Person();


p1.Name = "NN1";

p1.Family = "FF1";
p1.IDNo = 110;
p2.Name = "NN1";
p2.Family = "FF1";
p2.IDNo = 110;
if( p1 == p2 )
MessageBox.Show( "==" );
else
MessageBox.Show( "!=" );