دورة سي شارب С# Course

Thursday, August 28, 2014

سي شارب- الدرس الثالث عشر - operators overload




فيديو 54- 55- 56 -57 - 58 59:



 طريقة اسرع بالويزارد ايضا ..  
  • من الsolution explerer حددي البرنامج تبعك وبالزر اليمين اختاري add بعدين class اسمها point ، اكتبي جوا الكلاس ال fiels تبعها كتابة عادية int x; int y وبعدين حددي ال field الأول واختاري                                    Refactor - Encapsulate Field ، عشان نضيف ال property ، X,Y
operator overload هي اني اعمل عملية من العمليات بين كائنات (objects) من كلاس ،
من العمليات مثلا الجمع ، الطرح ، اكبر من ، اصغر من ، == ، != ،
class program{

static void Main (string[] args)
{
point p1=new p1(3);
// هون راح يحط x=3 , ;كمان y=3 <<< حسب ال constructor الاول
point p2=new p2(3,5);
// هون راح يحط x=3 , ;كمان 5=3  <<< حسب ال constructor الثان
point p3= new p3();


// هون راح يحط x=0 , ;كمان 0=y  <<< حسب ال constructor الثالث
p3=p1+p2;
// هون عمل عملية الجمع بين اتنين (objects) ، لازم تكوني كاتبة الدالة لهاي العملية +

Console.WriteLine(p3.X);
Console.WriteLine(p3.Y);
// النتيجة حتكون 6 و 8

if (p1>p2)
// هون عمل عملية المقارنة بين اتنين (objects) ، لازم تكتبي الدالة لهاي العملية وعكسها
Console.WriteLine(true);
else 
Console.WriteLine(false);


if (p1==p2)
// هون عمل عملية المساواة بين اتنين (objects)  ، لازم تكتبي الدالة لهاي العملية وعكسها
Console.WriteLine(true);
else 
Console.WriteLine(false);

p1++;


// هون عمل عملية الزيادة بين اتنين (objects)  ، لازم تكتبي الدالة لهاي العملية في الكلاس point
Console.WriteLine(p1.X);
Console.WriteLine(p1.Y);

}


class point{

//Fields ..
//Properties ...
//constructor 1
//constructor 2

public point ()
//constructor 3
{
x=0;
y=0;
}

pubic static point operator +(point p1, point p2)

// هاي الدالة استقبلت نقطتين وعملت بينهم عملية الجمع حسب ال properties تبعهم وأنشأت نقطة تالتة من عندها من نوع الكلاس اللي هي موجودة فيها واسمها point  ، اخدت نتيجة الجمع ورجعت النتيجة من نوع كائن .

// كلمة static بستخدمها في الدالة لما اكون في ال main بدي انادي الدالة عن طريقة اسمها دوت اسم الدالة ، وليس عن طريق الكائن دوت اسم الدالة
{
point p=new point();
p.X= p1.X + p2.X;
p.Y= p1.Y + p2.Y;
// X, Y هي properties أنشأتها من ال fields عن طريق التحديد والزر اليمين ثم ... كما باخر الدرس السابق 
return p;
}


pubic static bool operator >(point p1, point p2)
// هاي الدالة راح ترجع boolean
{
if (p1.x > p2.x && p2.y > p2.y)
return true;
else
return false ;

pubic static bool operator <(point p1, point p2)
// لازم تحطي العملية العكسية
{
if (p1.x < p2.x && p2.y < p2.y)
return true;
else
return false;
}


pubic static bool operator ==(point p1, point p2)
{
if (p1.x == p2.x && p2.y == p2.y)
return true;
else
return false;
}

pubic static bool operator !=(point p1, point p2)
{
if (p1.x != p2.x && p2.y != p2.y)
return true;
else
return false;
}

pubic static point operator ++(point p1)
{
p1.x++;
p1.y++;
return p1;

// نفس النقطة اللي استقبلها في الدالة عمل عليها عملية الزيادة في الproperties وبعدين رجعها ، ولما يجي يطبع  في ال main كمان حيطبع حسب ال properties

}

}



No comments:

Post a Comment