Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегрузка всех перегружаемых операторов 
:(
    Опции темы
serejaz1
Дата 18.11.2015, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.11.2015

Репутация: нет
Всего: нет



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

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.
PM MAIL   Вверх
serejaz1
Дата 18.11.2015, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.11.2015

Репутация: нет
Всего: нет



Проблема решилась перегрузкой 
Код

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

и
Код

public static implicit operator int(variable  op) {}

PM MAIL   Вверх
Sajtran
Дата 19.11.2015, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



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

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.