2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Перегруженные операторы в С#
Сообщение20.05.2009, 22:53 


30/09/06
68
Одесса
Всем привет!
Я правильно поняла, что в C# нельзя перегруженные операторы сделать виртуальными? (В С++ можно было). Это во-первых.
И во-вторых, перегрузка оператора инкремента(декремента) в префексной и постфиксной формах возможна в С#? Или только один вариант? :o

 Профиль  
                  
 
 Re: Перегруженные операторы в С#
Сообщение21.05.2009, 00:02 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Lotos в сообщении #215649 писал(а):
Я правильно поняла, что в C# нельзя перегруженные операторы сделать виртуальными? (В С++ можно было). Это во-первых.
Нельзя.
Можно сдалать виртуальную функцию и использовать ее в операторе.

Lotos в сообщении #215649 писал(а):
И во-вторых, перегрузка оператора инкремента(декремента) в префексной и постфиксной формах возможна в С#? Или только один вариант? :o
C# specification говорит следующее:
Цитата:
An operator ++ or operator -- implementation can be invoked using either postfix or prefix notation.
It is not possible to have separate operator implementations for the two notations.
То есть оператор ++ или -- изменяет объект, а что он будет возвращать, решается на основании того, префиксно он вызывается или постфиксно: если используется префиксная нотация, то возвращается значение, возвращаемое оператором, если постфиксная - то исходное значение объекта.

 Профиль  
                  
 
 Re: Перегруженные операторы в С#
Сообщение21.05.2009, 21:44 


30/09/06
68
Одесса
В языке C++ для того, чтобы отличать две формы операторы инкремента был входящий булевый параметр, который играл роль флага для компилятора. А как же в С# организовать две функции перегруженного оператора инкремента?

 Профиль  
                  
 
 Re: Перегруженные операторы в С#
Сообщение22.05.2009, 10:09 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Вы определяете один оператор ++
После этого он может использоваться как префиксный и как суффиксный.
Реализовать принципиально различную логику для префиксного и суффиксного оператора ++ нельзя.

 Профиль  
                  
 
 Re: Перегруженные операторы в С#
Сообщение22.05.2009, 15:25 


30/09/06
68
Одесса
Cпасибо за ответ. :(

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group