Перегрузка оператора ++

203
26 июля 2017, 19:54

Здравствуйте, есть класс к которому нельзя прибавить больше 1 значения, в классе идет индексация эллементов, и прочии действия)

Ну и покскольку меня немного раздражает все время писать

StringLink = StringLink + 1;

Кто-то скажет "а ты не пиши так, а пиши так +=", но это было для примера, да и наглядней писать так))

public static StringLink operator +(StringLink a, int b)
{
   //логика 
}

Прошу помочь перегрузить оператор ++

Answer 1

Пример:

using System;
namespace ConsoleApplication
{
    class MyPoint
    {
        private int x, y, z;
        public MyPoint(int x = 0, int y = 0, int z = 0)
        {
            this.x = x;
            this.y = y;
            this.z = z;
        }
        public static MyPoint operator ++(MyPoint obj1)
        {
            obj1.x++;
            obj1.y++;
            obj1.z++;
            return obj1;
        }
        public override string ToString()
        {
            return $"{x}, {y}, {z}";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MyPoint point = new MyPoint(1, 12, -4);
            Console.WriteLine($"Точка: {point}.");
            point++;
            Console.WriteLine($"Точка: {point}.");
            Console.ReadKey();
        }
    }
}

P.S. Большинство препроцессоров заменят a = a + 1 или a += 1 на a++, так как для инкремента и декремента в процессорах есть отдельные инструкции.

READ ALSO
Отображение файлов архива

Отображение файлов архива

ЗдравствуйтеМожете помочь? Пользователь открывает выбранный архив и как сделать отображение списка файлов архива в wpf c#?

212
Странное поведение Thread.Sleep [дубликат]

Странное поведение Thread.Sleep [дубликат]

На данный вопрос уже ответили:

200
Помогите разобраться С#!

Помогите разобраться С#!

Получается такЕсли вывожу

201