Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Перегрузка всех перегружаемых операторов


Автор: serejaz1 18.11.2015, 19:31
Всем привет. Решил сделать отдельный класс, в котором нужно перегрузить все операторы так, чтоб с ним можно было обращаться почти как со встроенным типом. И возникла проблема - много кода. Что-то мне подсказывает, что должен быть способ по проще, чем писать
Код

public static variable operator +(variable operand1, variable operand2) { /* реализация */}
public static variable operator +(variable operand1, int operand2) { /* реализация */}
public static variable operator +(int operand1, variable operand2) { /* реализация */}

для каждого оператора + проверка на null.

Автор: serejaz1 18.11.2015, 19:51
Проблема решилась перегрузкой 
Код

public static variable operator +(variable operand1, variable operand2) { /* реализация */}

и
Код

public static implicit operator int(variable  op) {}

Автор: Sajtran 19.11.2015, 14:54
если у тебя есть прямое приведение, то да
с векторами, например, такой фокус не прокатит
ну и для оптимизации иногда первый вариант иногда лучше
всё же это не будничное дело такие классы писать, их пишут надолго - так что приходится стараться

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Peregruzka-vsekh-peregruzhayemykh-operatorov-id564ca848ae2015133b8b4567#findElement_E7045_564db866ae2015d8218b608b_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)