Перегрузка оператора в классе C #

class Point
{
    private int m_PointX;
    private int m_PointY;

    public Point(int x, int y)
    {
        m_PointX = x;
        m_PointY = y;
    }

    public static Point operator+(Point point1, Point point2)
    {
        Point P = new Point();
        P.X = point1.X + point2.X;
        P.Y = point1.Y + point2.Y;

        return P;
    }
}

Пример:

Point P1 = new Point(10,20);
Point P2 = new Point(30,40)
P1+P2; // operator overloading
  1. Нужно ли всегда объявлять функцию перегрузки оператора как статическую? В чем причина этого?
  2. Если я хочу перегрузить +, чтобы принять выражение вроде 2 + P2, как это сделать?
10
задан Mohammad Dehghan 29 June 2018 в 16:52
поделиться