14-10-12, 04:36 PM
ليست معاملات الجمع والطرح فقط من يمكن عمل overloading ، بل يمكنك عمل ذلك لأي نوع من المعاملات ، فمثلاً ++ و -- في السي شارب فقط :
نفس الأمر بالنسبة لدوال المساواة وعمل == أو != حقيقية مثل ما تعلمنا سابقاً مع عمل overridding للدالة Equals ، سنعتمد هنا على هذه الدالة بالشكل التالي :
C#:
vb.net:
وهكذا تجد ان بامكانك عمل overloading لأي من هذه المعاملات :
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
كود :
public static Point operator ++(Point p1)
{ return new Point(p1.x+1, p1.y+1); }
public static Point operator --(Point p1)
{ return new Point(p1.x-1, p1.y-1); }
C#:
كود :
public override bool Equals(object o)
{
return o.ToString() == this.ToString();
}
public static bool operator ==(Point p1, Point p2)
{ return p1.Equals(p2); }
public static bool operator !=(Point p1, Point p2)
{ return !p1.Equals(p2); }
vb.net:
كود :
Public Overloads Overrides Function Equals(ByVal o As Object) As Boolean
Return o.ToString() = Me.ToString()
End Function
Public Shared Operator =(ByVal p1 As Point, ByVal p2 As Point) As Boolean
Return p1.Equals(p2)
End Operator
Public Shared Operator <>(ByVal p1 As Point, ByVal p2 As Point) As Boolean
Return Not p1.Equals(p2)
End Operator
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .