Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.08.2015, 16:20   #11
Buron Hoise
Заблокирован
 
Регистрация: 03.08.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Зачем?
... Ну, рантайм гибче компилтайма?
Buron Hoise вне форума
Старый 07.08.2015, 17:15   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вау... Снимаю шляпу. Такого оправдания я еще не слышал. Надо будет запомнить и применять.
I'm learning to live...
Stilet вне форума
Старый 07.08.2015, 17:45   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перегрузка это фича компил тайма, и лишь выбирает какая из функций будет вызвана.
тот же int.Parse:
Код:
Parse(String) 
Parse(String, NumberStyles) 
Parse(String, IFormatProvider)
Parse(String, NumberStyles, IFormatProvider)
и во время компиляции вы однозначно должны передать какие либо параметры, и от этих параметров выберется один 4 методов для вызова.

полиморфизм же основан на интерфейсах в основном
например
Код:
interface IAnimal
{
    string Vocal();
}
и далее уже реализация решает, какой именно голос будет.
но программа работает с животным в целом, которое умеет издавать звуки.
но какое это конкретно животное ему не важно.
это работает в общем-то во время рантайма, хотя и организуется за счет подготовки на этапе компиляции.

перегрузка же во время рантайма уже не нужна в принципе. ибо ей место при компиляции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 07.08.2015, 18:08   #14
Buron Hoise
Заблокирован
 
Регистрация: 03.08.2015
Сообщений: 28
По умолчанию

Эмм, полиморфизм есть и в языках, в которых отсутствует interface_(языковая конструкция). Там это делается через классы, часто с одним абстрактным методом.

Я может быть даже согласен, что рантайм перегрузка не нужна, но я могу сказать то же самое о полиморфизме. Ну не нужен он мне, и без него прожить можно. Всё таки тьюринг-полный язык в руках держу.

Короче, я думаю о конструкциях на подобии Dog.Cat.Breed(), Dog.Breed(Cat), или Breed(Dog, Cat). И думаю, что произойдёт, если я полностью перейду на крайний правый. Скорей всего я лишусь полиморфизма. Ну и плевать.
Buron Hoise вне форума
Старый 07.08.2015, 18:16   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Интересно, откуда ты себе такую "проблему" намыл?
I'm learning to live...
Stilet вне форума
Старый 07.08.2015, 18:19   #16
Buron Hoise
Заблокирован
 
Регистрация: 03.08.2015
Сообщений: 28
По умолчанию

Какая тебе разница?

Если мне понадобится создать что-то вроде Dog.Cat.Breed(), мне нужны переменные типа var{Dog, Cat}. Или var{Animal, Animal}.

И сам метод Animal.Animal.Breed() должен либо определяться как двухмерная таблица (видели когда-нибудь одномерную, трёхмерную или четырёхмерную таблицу?) для всех возможных комбинаций типов. Либо один метод для всех типов, который просто напросто проверяет типы на равенство, и throw new Exception("Wtf are you trying to do???") при несоответствии. Кстати, в первом случае это будет компилтайм ошибка, во втором рантайм. Хотя если использовать правильные утилиты, второе также будет компилтайм ошибкой.

Не о чем говорить - говори об ООП.

Последний раз редактировалось Stilet; 07.08.2015 в 20:04.
Buron Hoise вне форума
Старый 07.08.2015, 19:39   #17
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

pu4koff вне форума
Старый 07.08.2015, 20:01   #18
Buron Hoise
Заблокирован
 
Регистрация: 03.08.2015
Сообщений: 28
По умолчанию

Мы с вами на разных языках разговариваем.



Buron Hoise вне форума
Старый 07.08.2015, 20:06   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Какая тебе разница?
Мне интересно где могло такое извращение на компилируемом или псевдокомпилируемом ЯВУ понадобится. Ладно бы еще скриптовые и интерпретаторы - не вопрос. Но Шарпей, и такой вопрос, крошаший принципы ООП... Зачем?
Не хочешь отвечать - не надо. После твоих слив уже не интересно.
Желаю удачи и творческих узпбехов.
I'm learning to live...
Stilet вне форума
Старый 07.08.2015, 20:20   #20
Buron Hoise
Заблокирован
 
Регистрация: 03.08.2015
Сообщений: 28
По умолчанию

Я сюда не спорить пришёл, сливатор хренов. Хотя это было бы интересно...

Buron Hoise вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильная перегрузка методов класса. Человек_Борща Общие вопросы Delphi 9 10.11.2012 23:38
перегрузка методов класса (с++) Antej Общие вопросы C/C++ 2 24.07.2012 17:58
Перегрузка виртуальных методов mongolores Общие вопросы Delphi 27 14.05.2012 19:12
Чем отличается IA-64 от IA-32 Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.06.2009 16:13
Чем отличается AX от BX? veter_s_morya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.05.2008 16:50