|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Есть класс. Хочу получить такой же класс, только с другой функциональностью геттеров. Но чтобы всё остальное, включая логику сеттеров, уведомления об изменении свойств (INotifyPropertyChanged) и прочие навороты работали как в старом классе. Искал, думал - придумал пока только такой вариант. Проверил - вроде, работает так, как мне надо. Но это на простом примере, без наворотов. Покритикуйте - плохой дизайн там или ещё чего. Может, есть способ лучше решить такую задачу? Т. е. идея в том, что в моём подходе при наследовании надо переписать только геттер, а всё остальное (сеттеры со сложной логикой, INotifyPropertyChanged и пр.) придёт само только за счёт наследования. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 07:07 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Да, результат работы проги 10 1 10 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 07:08 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, почему свойству задаётся значение 2, а оно возвращает 10? В чём смысл такого поведения? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 09:36 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, почему свойству задаётся значение 2, а оно возвращает 10? В чём смысл такого поведения? Да, я бы тоже был сильно удивлен таким. Что же до вопроса топика - чего ж здесь сложного? логику геттера помещаем в виртуальный метод, в самом геттере возращаем результат выполнения этого метода, и в классе-наследнике этот виртуальный метод переопределяем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 10:03 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, для начала бы хотелось понять, зачем вообще класс-наследник нужен. А то понадобиться ТС возвращать 20, он будет походу класс C лепить ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 10:51 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, почему свойству задаётся значение 2, а оно возвращает 10? В чём смысл такого поведения? Я хотел сделать модель представления, которая должна для одних представлений возвращать одни значения, а для других - другие. Скажем, в одном месте показывать картинку-заглушку, обозначающую, что картинка не задана, а в другом - пустое место (картинка же не задана). Сначала я всё сделал на одной модели представления, только с конвертерами - где надо, конвертер возвращал картинку-заглушку, вместо того, чтобы оставить в привязке пустое место. Но потом я вычитал, что помещать такую логику в конвертеры - дурной тон. И что такая логика должна быть в моделях представления. И действительно, подумал я, чего это конвертер выполняет какую-то логику модели представления, когда он относится к представлению. Ну и поместил эту логику в модель представления. Т. е. базовая модель представления у меня показывает картинку или пустое место - в зависимости от того, есть ли картинка, а специальная модель представления, нужная в специальном месте, показывает заглушку, обозначающую, что картинка не задана. Сон Веры ПавловныskyANAuser7320, почему свойству задаётся значение 2, а оно возвращает 10? В чём смысл такого поведения? Да, я бы тоже был сильно удивлен таким. Что же до вопроса топика - чего ж здесь сложного? логику геттера помещаем в виртуальный метод, в самом геттере возращаем результат выполнения этого метода, и в классе-наследнике этот виртуальный метод переопределяем. Это тоже вариант. А это лучше или хуже моего варианта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 11:06 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAСон Веры Павловны, для начала бы хотелось понять, зачем вообще класс-наследник нужен. А то понадобиться ТС возвращать 20, он будет походу класс C лепить Такой пример в возвратом 10 - для простоты. На самом деле мне просто нужна другая логика в геттере (или сеттере - не важно), но вся остальная функциональность должна остаться та же. Понимаете? Просто хочу другой геттер, но всё остальное такое же. Просто в Сишарпе такое ограничение, что нельзя отдельно геттеры или сеттеры переписывать в наследуемых классах - только целиком свойства. Поэтому люди и выкручиваются через методы, вызываемые геттерами-сеттерами или через вот такое, как у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 11:09 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Я хотел сделать модель представления, которая должна для одних представлений возвращать одни значения, а для других - другие. Скажем, в одном месте показывать картинку-заглушку, обозначающую, что картинка не задана, а в другом - пустое место (картинка же не задана).Не проще описать эту логику в View с помощью триггеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 12:04 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Покритикуйте - плохой дизайн там или ещё чего. Может, есть способ лучше решить такую задачу? понимаешь разницу между overload и override ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 12:39 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Я хотел сделать модель представления, которая должна для одних представлений возвращать одни значения, а для других - другие. Скажем, в одном месте показывать картинку-заглушку, обозначающую, что картинка не задана, а в другом - пустое место (картинка же не задана).Не проще описать эту логику в View с помощью триггеров? Например? Я вначале пользовался конвертерами (и всё работало, как мне надо) - тоже "логика во вью". Решил отказаться от "логики во вью" по идеологическим соображениям. pationuser7320Покритикуйте - плохой дизайн там или ещё чего. Может, есть способ лучше решить такую задачу? понимаешь разницу между overload и override ? Первое - метод с тем же названием, но другой остальной частью сигнатуры. Например. А второе - при полностью совпадающей сигнатуре в унаследованных классах. Например. А что? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 12:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Не проще описать эту логику в View с помощью триггеров? Например? Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
user7320Я вначале пользовался конвертерами (и всё работало, как мне надо) - тоже "логика во вью". Решил отказаться от "логики во вью" по идеологическим соображениям .Ещё одна жертва информационной войны! :-) Меньше читай "классику" ... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 13:32 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320пропущено... Например? Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Спасибо, гляну. Здесь уже другая классика и авторитеты . Видите, какие там тысячники мнения имеют? Ну и я согласен с ними - конвертеры относятся к представлениям, а логику надо в моделях размещать. Другой вопрос, а к представлениям ли относятся конвертеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 14:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Здесь уже другая классика и авторитеты . Видите, какие там тысячники мнения имеют? Ну и я согласен с ними - конвертеры относятся к представлениям, а логику надо в моделях размещать. Другой вопрос, а к представлениям ли относятся конвертеры?В модели должна быть логика предметной области. В представлении - логика представления. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 14:42 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Здесь уже другая классика и авторитеты . Видите, какие там тысячники мнения имеют? Ну и я согласен с ними - конвертеры относятся к представлениям, а логику надо в моделях размещать. Другой вопрос, а к представлениям ли относятся конвертеры?В модели должна быть логика предметной области. В представлении - логика представления. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Я имел ввиду модель представления, конечно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:31 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
И это... насколько я знаю, писать логику в представлении - а конкретно, в XAML - это возникло из идеи "не давать дизайнерам смотреть код". По-моему, самое место для логики представления - не замл, не конвертеры, а так называемый код поддержки, т. е. класс представления. В замле что-то там кодить - это было сделано для удобства дизайнеров, чтобы они конвертацию ту же не в коде писали, а в разметке. В конвертерах - та же шняга, только теперь конвертацию дизигнерам прогеры сделали, а они нужный конвертер выбирают. Всё это плохо, потому что ради удобства вносится бардак, хаос. Теперь код представления и, частично, модели представления разнесён по четырём местам: моделям представления; конвертерам; разметке; классам представления. И каждый хреначит в соответствии со своей "религией" - как он видит, где должен быть код. У некоторых прямо во всех этих местах и разбросано всё - задолбаешься искать, где у него там что куда конвертится. А вот если бы дизигнерам не подлизывали и всё строго в одном месте требовали бы размещать (ну, в двух - в модели представления и в классе представления-коде поддержки), то было бы больше порядка. Аналогия подобного говна в ХТМЛ - когда в добавок к джаваскрипту добавили возможность писать некоторую логику в стилях. А джаваскрипт вознесли вплоть до серверов. ИДИОТЫ! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:42 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Я имел ввиду модель представления, конечно же.Модель представления, мне кажется, не должна содержать логики. Она нужна как "переходник", для сращивания модели и представления, если представление с моделью в таком виде работать не может. В ней только делегирование и преобразование. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:49 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320pationпропущено... понимаешь разницу между overload и override ? Первое - метод с тем же названием, но другой остальной частью сигнатуры. Например. А второе - при полностью совпадающей сигнатуре в унаследованных классах. Например. А что? не совсем правильно, ты getter хочешь оверрайдить или оверлоадить? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:51 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Аналогия подобного говна в ХТМЛ оффтоп, этот срач в соседнем форуме ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:52 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320По-моему, самое место для логики представления - не замл, не конвертеры, а так называемый код поддержки, т. е. класс представления.Всему своё место. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 15:54 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Я имел ввиду модель представления, конечно же.Модель представления, мне кажется, не должна содержать логики. Она нужна как "переходник", для сращивания модели и представления, если представление с моделью в таком виде работать не может. В ней только делегирование и преобразование. Ну, это зависит от того, что понимать под "логикой". И это зависит от проекта. В больших проектах столько разных слоёв и так всё наворочено, что и на модель представления может немало логики перепасть. Под логикой представления я подразумеваю всякие конвертеры-преобразователи, кнопочки подвигать (анимации) и прочие вещи, относящиеся к интерфейсу. Под логикой модели представления я понимаю вот это ваше "переходник". В некоторых случаях переходник может быть очень даже нагружен. Я уже приводил пример - в модели только идентификатор, а в модели представления текстура (картинка), геометрия (вершины, полигоны и пр.) и прочие визуальные атрибуты. И только под логикой модели я собственно подразумеваю логику предметной области (бизнес-логику или как хотите это назовите - я это не различаю). pationuser7320пропущено... Первое - метод с тем же названием, но другой остальной частью сигнатуры. Например. А второе - при полностью совпадающей сигнатуре в унаследованных классах. Например. А что? не совсем правильно, ты getter хочешь оверрайдить или оверлоадить? Оверрайдить через оверлоад. Я хочу переписать код геттера. Но сделать это можно только через оверлоад всего свойства - т. е. и геттера в том числе. Таковы ограничения Сишарпа. Изопропилuser7320Аналогия подобного говна в ХТМЛ оффтоп, этот срач в соседнем форуме Джаваскрипт всегда уместно и вовремя поругать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 16:03 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Под логикой модели представления я понимаю вот это ваше "переходник". В некоторых случаях переходник может быть очень даже нагружен. Я уже приводил пример - в модели только идентификатор, а в модели представления текстура (картинка), геометрия (вершины, полигоны и пр.) и прочие визуальные атрибуты."Как хотите это назовите - я это не различаю" (ц) Это такая же модель, как и все остальные. Просто она расположена локально, а не в, например, вебсервисе. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 16:08 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Как то так надо. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 16:26 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Я вообще не пойму, зачем разделили понятия Model и ViewModel. Мне кажется, достаточно одного понятия Model. ViewModel только добавляет путаницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 16:28 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВuser7320 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Как то так надо. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Так по сути это то же самое? Я, кстати, не понимаю, в чём разница между парой "virtual-override" и "new". New вроде как просто убирает предупреждение компилятора - типа, прогер сознательно скрыл метод или свойство базового класса, а не по ошибке. Алексей КЯ вообще не пойму, зачем разделили понятия Model и ViewModel. Мне кажется, достаточно одного понятия Model. ViewModel только добавляет путаницу. Я же приводил пример с идентификаторами и картинками. Вот тем, у тех, у кого нет такой специфики - действительно, у них М и ВМ выглядят одинаково и ВМ так кажется лишним слоем. Для простых приложений и не надо выдумывать всякие МВВМ. А вот напишите Офис - там ещё и не такое придумаете. Некоторые вообще аспектно-ориентированное программирование любят. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 16:47 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Я, кстати, не понимаю, в чём разница между парой "virtual-override" и "new" я же спрашивал тебя =)) учи матчасть ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 18:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Оверрайдить через оверлоад. =)) писец ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 18:30 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
pationuser7320Я, кстати, не понимаю, в чём разница между парой "virtual-override" и "new" я же спрашивал тебя =)) учи матчасть Не люблю я ответы, где из всего стоящее только "учи матчасть". Можно форумы все позакрывать и повесить заглушку на главную с крупными буквами "УЧИ МАТЧАСТЬ". Ну и баннеров вокруг понавтыкать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 18:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Вот тем, у тех, у кого нет такой специфики - действительно, у них М и ВМ выглядят одинаково и ВМ так кажется лишним слоем.Не лишним, а чем-то отличающимся от других слоёв логики настолько, чтобы иметь специальное название. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:07 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз. Далее: Код: c# 1. 2.
Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
pationuser7320Я, кстати, не понимаю, в чём разница между парой "virtual-override" и "new" я же спрашивал тебя =)) учи матчасть Я вот не знаю, как это понимать: http://msdn.microsoft.com/en-us/library/435f1dw2.aspx It is an error to use both new and override on the same member, because the two modifiers have mutually exclusive meanings. The new modifier creates a new member with the same name and causes the original member to become hidden. The override modifier extends the implementation for an inherited member. Наверное, отличия во внутреннем представлении в CLR или где там. А для программиста это выглядит одинаково - и так и так (и через new, и через override) я скрываю метод базового класса и не могу его вызвать из текущего класса. Но могу вызвать его через base или через приведение к базовому. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:20 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, Или вы очень криво выражаетесь, или не понимаете, что override и new это совершенно разные вещи: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:35 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры Павловныuser7320, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз. Ну, второй-то Фу я прооверрайдю (через ещё один new), а первый-то нет - он же скрыт. Ну, я понял теперь, в чём разница. Но для первого уровня наследования разницы нет? Сон Веры ПавловныДалее: Код: c# 1. 2.
Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов. В выводе будет Фу от Class. Почему - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:36 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныДалее: Код: c# 1. 2.
Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов. При этом при оверрайде - Фу от Derived1. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:37 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, у меня такой вывод: // Если в Derived1 new Class.Foo Derived1.Foo Derived2.Foo Class.Foo ConsoleApplication1.Derived1 // Если в Derived1 override Class.Foo Derived1.Foo Derived2.Foo Derived1.Foo ConsoleApplication1.Derived1 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:43 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, Модификатор new создает новый член с таким же именем и приводит к скрытию исходного члена. Модификатор override расширяет реализацию для наследуемого члена. Взято отсюда: http://msdn.microsoft.com/ru-ru/library/435f1dw2.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:44 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, Модификатор new создает новый член с таким же именем и приводит к скрытию исходного члена. Модификатор override расширяет реализацию для наследуемого члена. Взято отсюда: http://msdn.microsoft.com/ru-ru/library/435f1dw2.aspx Так я про то же цитату и привёл. И мне эти слова мало о чём говорят. Чем "сокрытие" отличается от "расширения"? Без примеров это пустые слова. Ну, мне уже объяснили выше. Правда, я всё равно не понял, почему это так происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:55 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, Или вы очень криво выражаетесь, или не понимаете, что override и new это совершенно разные вещи: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Это то же, что и у Сон Веры Павловны. Я всё равно не понимаю, почему это так происходит. Кстати, вот эти ваши слова авторМодификатор new создает новый член с таким же именем и приводит к скрытию исходного члена. Модификатор override расширяет реализацию для наследуемого члена. Взято отсюда: http://msdn.microsoft.com/ru-ru/library/435f1dw2.aspx противоречат вашему примеру. В примере в третьем случае new должен скрыть исключение (ну таписано же так!), а он его наоборот - показывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 19:58 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouch, и в рантайме ((A)(new C())) является типом С, а не А (в аналогичном примере Сон Веры Павловны это видно - я GetType() вызывал). Но вызывается метод из А почему-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:00 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Тут ещё что-то намешно из приведения типов. Вот в МСДН для new простой пример приведён без приведения типов - и работает всё так, как объяснено. Но стоит только войти в игру приведению типов, как всё с ног на голову встаёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:01 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, (То что я описываю - мое упрощенное понимание, судя по http://msdn.microsoft.com/en-us/magazine/cc163791.aspx - все несколько сложнее) потому что метод C.M() это новый метод, никакого отношения к A.M() не имеющий. Судя по сигнатуре вызова метода в IL (пример отсюда ): IL_0002: call instance void ConsoleApplication1.Base::foo() для ((A)(new B())).M() ((A)(new C())).M() вызов в IL будет выглядеть одинаково: call instance void A::M(); Так как метод M() вирутальный, то будет применен виртуальный вызов. CLR определит реальный тип объекта (B и С) и начнет искать "ближайшее" к ним в иерархии наследования переопределение меторда. В случае класса B - это переопределение выполнено в нем самом, будет взята его релизация. В случае класса C - переопределение не выполнялось, метода C.M() нет в таблице виртуальных методов (если добавить если слово Virtual, он там появится, НО! это в любом случае совершенно новый метод, не имеющий отношения к методу A.M(), и не являющийся его новой реализацией) - поэтому будет вызван метод A.M(); Как то так, надеюсь троечку от Сна Веры Павловны я заслужил ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:21 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouch, поправка, вызов будет callvirt instance void A::M() (виртуальный вызов) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 20:55 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouch, авторТак как метод M() вирутальный, то будет применен виртуальный вызов и да и нет, виртуал может быть и для простого экземплярного, и просто call все зависит от кода.. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 21:07 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, я же говорил о своем примере, метод A::M() помечен как виртуальный ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 21:18 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouch, я ничего против не имею, но строчку "Так как метод M() вирутальный, то будет применен виртуальный вызов" можно и убрать так как она наводит на мысль, если метод будет не виртуальный то и вызов будет не вертуальный.. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 21:24 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, да я бы там много что брал, в том числе орфографические ошибки) но кнопки редактирования нет ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 21:28 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, (То что я описываю - мое упрощенное понимание, судя по http://msdn.microsoft.com/en-us/magazine/cc163791.aspx - все несколько сложнее) потому что метод C.M() это новый метод, никакого отношения к A.M() не имеющий. Судя по сигнатуре вызова метода в IL (пример отсюда ): IL_0002: call instance void ConsoleApplication1.Base::foo() для ((A)(new B())).M() ((A)(new C())).M() вызов в IL будет выглядеть одинаково: call instance void A::M(); Так как метод M() вирутальный, то будет применен виртуальный вызов. CLR определит реальный тип объекта (B и С) и начнет искать "ближайшее" к ним в иерархии наследования переопределение меторда. В случае класса B - это переопределение выполнено в нем самом, будет взята его релизация. В случае класса C - переопределение не выполнялось, метода C.M() нет в таблице виртуальных методов (если добавить если слово Virtual, он там появится, НО! это в любом случае совершенно новый метод, не имеющий отношения к методу A.M(), и не являющийся его новой реализацией) - поэтому будет вызван метод A.M(); Я вот чего не понимаю. Почему "реальный тип объекта" - В и С, а метод вызывается как от А? Я так понимаю, что приведение к менее унаследованному типу как бы "отсекает" функциональность более унаследованных типов. Да? Но при этом объект остаётся по-прежнему более унаследованным, а не тем, к которому он приведён. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 22:38 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320менее унаследованному user7320более унаследованным что за терминология? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2014, 22:49 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Изопропилuser7320менее унаследованному user7320более унаследованным что за терминология?Нечёткая логика? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 05:40 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Не пойму, ты с ООП что ли не знаком? В ужасе читать классику про инкапсуляция/наследование/ полиморфизм . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 05:43 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Вы меня запутали! Это вы во всём виноваты! До того, как я сюда зашёл, у меня был нормальный такой маленький new, который оверрайдил оверлоадом геттер свойства более унаследованного класса и вообще работал. А с вами я скоро алфавит начну забывать, не то, что нечёткую логику пременять. Лучше пойду джаваскрипт изучать... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 07:01 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, ты же сам просил критики. Ты её получил. А насчёт "у меня был нормальный такой маленький new": ИМХО не фиг ради каждого куска кода топик создавать и просить оценивать "дизайн там или ещё чего". Запишись на курсы, там проведут Code Review твоей поделки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 10:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты же сам просил критики. Ты её получил. Да всё нормально. Так и надо. )) skyANAА насчёт "у меня был нормальный такой маленький new": ИМХО не фиг ради каждого куска кода топик создавать и просить оценивать "дизайн там или ещё чего". Запишись на курсы, там проведут Code Review твоей поделки. Но тут же бесплатно... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 11:09 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAА насчёт "у меня был нормальный такой маленький new" Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:45 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныskyANAА насчёт "у меня был нормальный такой маленький new" Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать.Соглашусь. Сразу возникает подозрение, что что-то здесь не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 13:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAСон Веры Павловныпропущено... Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать.Соглашусь. Сразу возникает подозрение, что что-то здесь не так. Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 14:21 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Соглашусь. Сразу возникает подозрение, что что-то здесь не так. Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают. Конечно не дураки :) Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:00 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВuser7320пропущено... Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают. Конечно не дураки :) Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья! Т. е. по-вашему, это такой костылик, решающий проблему версионностей и раздельной разработки, а не относящийся к языку? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:42 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320ЕвгенийВпропущено... Конечно не дураки :) Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья! Т. е. по-вашему, это такой костылик, решающий проблему версионностей и раздельной разработки, а не относящийся к языку? Т. е. для целей оверрайдинга оверлоадом надо использовать именно virtual-override? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:47 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, user7320оверрайдинга оверлоадом щито? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:51 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, вы вообще разницу между override и overload знаете ?) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:52 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Т. е. для целей оверрайдинга оверлоадом надо использовать именно virtual-override? Не, кое-кому точно нужно кое-что почитать. Гради Буча, например. Потому как "оверрайдинг оверлоадингом" - это теплое с мягким. Оверлоадинг - это перегрузка методов по сигнатуре : Код: c# 1. 2. 3.
а вовсе не все эти выкрутасы с new. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, user7320оверрайдинга оверлоадом щито? В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю. Чтобы как в С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:12 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю. почему "явно" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:17 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, user7320оверрайдинга оверлоадом щито? Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:19 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Изопропилuser7320В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю. почему "явно" ? Потому что оверлоадинг оверрайдингом я слишком быстро изучил. Да и вы тоже подтягиваетесь, я смотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:20 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Lelouchuser7320, пропущено... щито? Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)? Чем же вас виртуальное свойство не устроило, оверлоадер оверрайдингом вы наш? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:32 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320, user7320оверрайдинга оверлоадом щито? Триангуляционная симпелляция деструбных гентронов ротора турбулентности дивергенции - элементарнейшая вещь! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:47 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры Павловныuser7320, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз. Далее: Код: c# 1. 2.
Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов. ыыы это же вопрос на собеседовании сразу почему отличий реф и вал )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:49 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Lelouchuser7320пропущено... Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)? Чем же вас виртуальное свойство не устроило, оверлоадер оверрайдингом вы наш? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Я не против. Я спрашиваю, чем лучше или хуже вариант Сна - который через виртуальный метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 18:21 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
netivanСон Веры Павловныuser7320, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз. Далее: Код: c# 1. 2.
Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов. ыыы это же вопрос на собеседовании сразу почему отличий реф и вал )) Причём тут реф и вал? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 19:04 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320netivanпропущено... ыыы это же вопрос на собеседовании сразу почему отличий реф и вал )) Причём тут реф и вал?Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 19:06 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, вот еще разминка без компила что будет? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 19:59 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, вот еще разминка без компила что будет? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Будет 2. Но это для задротов, которые зазубривают порядок выполнения бинарных операторов. Я вот в Сишарпе не знаю, а в С++ 99 сначала выполняется правое выражение, потом левое, а потом выполняется оператор сложения. Соответственно, сначала приращение до единицы, затем сумма двух единиц. Не понимаю, нах такие вопросы задавать на собеседованиях. Всё равно когда кодишь, такие нюансы из головы вылетают. Или эти задавальщики вопросов на самом деле думают, что прогер каждый символ своего кода со всех сторон обсасывает? - "а что будет, если так?... а если этак?... а если в Андромеде сверхновая вспыхнет? - вдруг код упадёт?!". Да когда о проблеме предметной области думаешь, сраным синтаксисом меньше всего голова забита. Вот кодерам, которым дают только методы заполнять, а всю структуру приложения за них продумывают - этим да, только о синтаксисе и порядке выполнения операторов и думать. Они всё равно из процедурного программирования не вылазиют. Ещё Луговский говорил, что тот, кто хорошо знает С++ (и С# туда же) - просто хорошая зубрилка. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 20:41 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Причём тут реф и вал?Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению". Это где такие говно-собеседования? Приходишь ты такой на собеседование. В ризюме у тебя такие-то проекты, такие-то ссылки на гитхабы там всякие, сайты, тобой сделанные. И вместо того, чтобы обсуждать с тобой твои проекты и что ты умеешь, тебе всякую куйню задают, в надежде на то, что какой-то нюансик ты да подзабыл. И тогда с гордым и сияющим видом 23-летний сеньор говорит тебе, что ты, мол, не подходишь - мало зубрил спецификации языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 20:43 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению". Это где такие говно-собеседования? Приходишь ты такой на собеседование. В ризюме у тебя такие-то проекты, такие-то ссылки на гитхабы там всякие, сайты, тобой сделанные. И вместо того, чтобы обсуждать с тобой твои проекты и что ты умеешь, тебе всякую куйню задают, в надежде на то, что какой-то нюансик ты да подзабыл. И тогда с гордым и сияющим видом 23-летний сеньор говорит тебе, что ты, мол, не подходишь - мало зубрил спецификации языка.Чушь не неси. Понятно же что опытных людей так не собеседуют, а только junior-ов вроде тебя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 20:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, Охуи.. но Вас послушал, вспомнил детство ( когда смотрел по телевизору выступление ансамБЛЯ песни и пляски Сов.Армии) так же все скачут и ничего не понятно, потом вспомнил что и сегодня видел такой же долбоебический бред на просторах вселенной, ( не буду ссылить, а то привлекут за терроризм), мда.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 22:50 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, вот еще разминка без компила что будет? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Дурацкий вопрос! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:06 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВ, обоснуйте ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиЕвгенийВ, обоснуйте ref нужен больше для взаимодействия с неуправляемым кодом, использовать его напрямую в управляемом - плохая практика... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:17 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВ, сколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:19 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, Чего сколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:22 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВ, что в консоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:23 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиЕвгенийВ, что в консоли? Мой мозг не способен воспринять такую цикломатическую сложность. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВ, равнозначный ли код ( смотри выше) и этот? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:31 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, Не интересно! Я больше люблю нечто подобное :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:38 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВ, каждому своё мне нраца мурмур ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 23:44 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВГде-то в степи, Не интересно! Я больше люблю нечто подобное :) Децкий лепет на лужайке. Мужыки посерьёзнее развлекаются как-то вот так . ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 03:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиЕвгенийВ, сколько? 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 04:45 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Где-то в степиЕвгенийВ, сколько? 0 Что-то херня какая-то. Вот в этом коде (ваш же год, только добавил переменных для контроля) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В точке останова на return s; показывает, что i = 1, а s = 0. А результат общий - 1. Как такое может быть? Почему 1 не присваивается s? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 04:55 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Вот тут всё присваивается http://msdn.microsoft.com/en-us/library/14akc2c7.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 04:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320user7320пропущено... 0 Что-то херня какая-то. Вот в этом коде (ваш же год, только добавил переменных для контроля) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В точке останова на return s; показывает, что i = 1, а s = 0. А результат общий - 1. Как такое может быть? Почему 1 не присваивается s? Короче говоря, нет присваивания s, и нет присваивания b. А, ещё в точке останова на строчке return s; в окне Locals значение i горит красненьким и равно 1, а при переходе на следующую строчку оно уже горит белерьким. Это что значит? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 05:14 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВГде-то в степиЕвгенийВ, что в консоли? Мой мозг не способен воспринять такую цикломатическую сложность. А Евгений прав. Вот такую куйню авторThe difference between the following two: DoSomething(x++); // notice x first, then ++ DoSomething(++x); // notice ++ first, then x Is that in the first one, the method DoSomething will see the previous value of x before it was incremented. In the second one, it will see the new (incremented) value. с посылом в методы инкрементов - это как раз джуниоры и делают. Вот им и надо разбираться в этой куйне. А норм пацаны все операции с переменными делают до вызова метода, а не во время, поэтому у них такой ерунды из получающихся абракадабр не бывает и им в этих искусственно созданных дебрях разбираться не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 05:19 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320и им в этих искусственно созданных дебрях разбираться не надо. Откуда у меногих начинающих потсанов автоматически следует, что букварь читать не надо тоже. Например, главы про ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 05:58 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Почему 1 не присваивается s?Потому что это постфиксный инкремент. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 06:18 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Почему 1 не присваивается s?Потому что это постфиксный инкремент. И что? Приоритет присваивания самый низкий и постфикс идёт перед ним. И вот логика работы постфикса: http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. Т. е. сначала выполняется всё, что справа от присваивания, затем результат присваивается. Почему в программе не так? Результат должен быть одинаков и для постфикса, и для префикса - сначала этот самый фикс, а потом присваивание - см. таблицу приоритетов операторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 06:24 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320 http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. Т. е. сначала выполняется всё, что справа от присваивания, затем результат присваивается. Почему в программе не так? . Перевели по пунктам, что тут написано - и поймешь ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 08:02 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Потому что это постфиксный инкремент. И что?И всё. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 08:32 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320И вот логика работы постфикса...Не нужно искать логику там где её нет. Это всё пошло из С++, чтобы в котором можно было писать конструкции вида: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 08:36 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЕвгенийВГде-то в степи, Не интересно! Я больше люблю нечто подобное :) Децкий лепет на лужайке. Мужыки посерьёзнее развлекаются как-то вот так . Во всем должен быть практический смысл! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 08:39 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВСон Веры Павловныпропущено... Децкий лепет на лужайке. Мужыки посерьёзнее развлекаются как-то вот так . Во всем должен быть практический смысл!Кто-то шахматами мозг разминает, кто-то этим... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 08:45 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320If x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. Т. е. сначала выполняется всё, что справа от присваивания, затем результат присваивается. Почему в программе не так? . Перевели по пунктам, что тут написано - и поймешь Перевёл и не понял. Берётся х. Сохранятеся в х (не знаю, зачем сохранять там, где она и так уже есть - но так написано). Приращивается на ++. Сохраняется там же. Теперь результат всего этого оказывается справа и должен быть присвоен операнду слева (когда присвоение используешь). Почему не присваивается? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320И вот логика работы постфикса...Не нужно искать логику там где её нет. Это всё пошло из С++, чтобы в котором можно было писать конструкции вида: Код: plaintext 1. 2.
Т. е. вместо того, чтобы работать с переменными, они работают с адресами и берут значения из этих адресов? А если по адресу p будет 0? Цикл закончится. И какое это всё имеет отношение к тому, что в примере Где-то в степи и моём не происходит присваивания? Почему присваивания не происходит-то, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:13 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
авторThe ++ and -- operators also support prefix notation, as described in Section 7.6.5. The result of x++ or x-- is the value of x before the operation, whereas the result of ++x or --x is the value of x after the operation. Я вот тут не понял. int x = 0; int y = x++; Берём выражение 2: int y = x++; По таблице приоритетов операторов в этом выражении первым выполняется оператор ++. Потом присваивание. Почему на самом деле произошло наоборот - сначала присваивание, потом ++? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:17 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, не тупи, написано же: The saved value of x becomes the result of the operation. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:27 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Почему на самом деле произошло наоборот - сначала присваивание, потом ++? по спецификации языка ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:30 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:36 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Изопропилuser7320Почему на самом деле произошло наоборот - сначала присваивание, потом ++? по спецификации языка Это не ответ. авторThe result of x++ or x-- is the value of x before the operation, whereas the result of ++x or --x is the value of x after the operation. Это ответ. Но это противоречит таблице приоритетов операторов. Мол, забейте на таблицу и читайте, что ТУТ у нас написано. skyANAuser7320, не тупи, написано же: The saved value of x becomes the result of the operation. И я о том же. Разберём выражения int x = 0; int a = x++; по алгоритму из МСДН: авторIf x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. x is evaluated to produce the variable: x=0; a=0 The value of x is saved: x=0; a=0 The selected operator is invoked with the saved value of x as its argument: x=0; a=0 The value returned by the operator is stored in the location given by the evaluation of x: x=1; a=0 The saved value of x becomes the result of the operation: в этот момент второе выражение эквивалентно int a = 1; и результат должен быть: x=1; a=1 Так какого это не так?! Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:41 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:43 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Я могу только сказать, что таблица операторов никуя не отображает действительность. Т. е., плять, сначала выполняется присваивание старого значения х левому операнду, а потом приращение старого значения х присваивается самому х. ВОПРЕКИ преоритету операторов. Какого буя?! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:46 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Т. е. ни таблица приоритетов, ни алгоритм, что я выше разобрал, не отображаются действительноть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:48 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320 The value of x is saved: saved в другое место в памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:51 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320The value of x is saved: saved в другое место в памяти Это нигде не написано, что в другое место. В вашей нотации это выглядит как КЛОНИРОВАНИЕ, а не сохранение. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:55 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Короче, я понял. Надо найти и убить того сраного индуса или кто там у них, который писал эту статью в МСДН. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: 1.x is evaluated to produce the variable. 2.The value of x is saved. 3.The selected operator is invoked with the saved value of x as its argument. 4.The value returned by the operator is stored in the location given by the evaluation of x. 5.The saved value of x becomes the result of the operation. 1. Вычисляем x 2. __x = x; 3/4. x = x+1; 5. return __x; ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, чё такие лёгкие задачки даёшь? Ну теперь-то, когда я понял, что МСДН писали дураки, я сразу могу сказать, что нолик будет в твоей задачке. Это ж для детсадовцев! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? Ты не правильно объясняешь. Палларис правильно объяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:59 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. По-моему, все как раз четко расписано ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:01 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. По-моему, все как раз четко расписано Когда подсказали, что оператор ++, работающий с ОДНОЙ переменной, задействует ДВЕ переменные, одна из которых как бы скрытая, тогда всё стало ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:04 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:06 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:07 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема. Я принципиальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:08 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс?Голову включи уже. Я тебе намекаю, что по твоей логике получится фигня. Значит надо выключить барана и понять, что ты не правильно рассуждаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:09 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Pallarisпропущено... По-моему, все как раз четко расписано Когда подсказали, что оператор ++, работающий с ОДНОЙ переменной, задействует ДВЕ переменные, одна из которых как бы скрытая, тогда всё стало ясно.Дак это и написано по ссылке ниже:Pallaris http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: 1.x is evaluated to produce the variable. 2.The value of x is saved. 3.The selected operator is invoked with the saved value of x as its argument. 4.The value returned by the operator is stored in the location given by the evaluation of x. 5.The saved value of x becomes the result of the operation. 1. Вычисляем x 2. __x = x; 3/4. x = x+1; 5. return __x;Полярис тебе просто по пунктам разжевал. Ты даже его пункты с пунктами по ссылке по номерам сопоставить не в состоянии? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:13 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? Ты не правильно объясняешь. Палларис правильно объяснил.Я описал постановку задачи. Палларис показал реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:24 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Полярис тупо перевёл с английского на псевдокод, что он выше предлагал ТС сделать самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:27 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Но ТС у нас принципиальный, он самостоятельно не хочет ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:27 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЕвгенийВГде-то в степи, Не интересно! Я больше люблю нечто подобное :) Децкий лепет на лужайке. Мужыки посерьёзнее развлекаются как-то вот так . А вам не кажется что переплетение лямбд по фрейду есть нечто иное как волосы из пизды любимой женщины (с) и да же анализируя топик с точки зрения психоанализа можно сделать далеко идущие описания топикмейкера например: несомненно что основная поза совокуплени - миссионерская я даже не удивлюсь что в сознании доминирует талмудический секс. ( ну если конечно отбросить возможный молодой возраст, где онанизм в порядке вещей) даже нелепый мой пример, если его переложить на секс С начало в пизду, потом по нормальному (с) вовлек его в небольшой ступор.. ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:35 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, Круто! Можно, я к тебе на психоанализ иногда ходить буду? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:45 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Я тут кодил-кодил, и внезапно понял, что мне не нужен override свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 14:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Я тут кодил-кодил, и внезапно понял, что мне не нужен override свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 14:28 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Фотка Стародубцевой - лучшее, что было в этой теме ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 14:41 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Весело тут у вас ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 14:58 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Я тут кодил-кодил, и внезапно понял, что мне не нужен override свойства. Вот тебе и оверлайдинг виртуализации абстракции оверридинга.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 15:46 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
ЕвгенийВuser7320Я тут кодил-кодил, и внезапно понял, что мне не нужен override свойства. Вот тебе и оверлайдинг виртуализации абстракции оверридинга.... Да не говори, всё было зря... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 16:29 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAНесмышлёный ты, вот и вся проблема. Ария лучше Iron Maiden. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 21:02 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, есть: ( Ария, Российский Автопром, Говно) нарисуйте транзитивные отношения... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 21:40 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, есть: ( Рашен попса, Российский Автопром, Говно) нарисуйте транзитивные отношения... Полный граф-треугольник устроит? У Арии лучше музыка - более мелодичная. И у Кипелова лучше вокал, чем у Диккенсона. Плюс тексты песен у Арии более осмысленные. И это, ты чего-нибудь про ECS слышал? И почему оно с играми связано в первую очередь (кстати, Dungeon Siege 1 рулит, особенно с картой Utraean Peninsula)? Это в этих ваших энтерпрайзах где-нибудь применяется? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 22:11 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320кстати, Dungeon Siege 1 рулит, особенно с картой Utraean Peninsula эт что за говно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 22:31 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Изопропилuser7320кстати, Dungeon Siege 1 рулит, особенно с картой Utraean Peninsula эт что за говно? Такого щас не делают - огромная карта на много часов исследований со свободным перемещением и без явных загрузок локаций. Можно мультиплеер до 8 игроков. Прокачка не по уровням, а по использованию скиллов-вещей. И всё на Entity Component System. Энтерпрайзу до этого ещё далеко. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 05:58 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Изопропилпропущено... эт что за говно? Такого щас не делают - огромная карта на много часов исследований со свободным перемещением и без явных загрузок локаций. Можно мультиплеер до 8 игроков. Прокачка не по уровням, а по использованию скиллов-вещей. И всё на Entity Component System. Энтерпрайзу до этого ещё далеко.Кто бы говорил. Где ты, и где Энтерпрайз? Опять чего-то там покурил? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 09:08 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAГде ты, и где Энтерпрайз? Опять чего-то там покурил? Обои заблуждаясь, попали в выгребную яму) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 09:17 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320У Арии лучше музыка - более мелодичная. И у Кипелова лучше вокал, чем у Диккенсона. Плюс тексты песен у Арии более осмысленные.Будем бить культурой по мракобесию... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 15:09 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Когда мне было лет 17, тоже Ария нравилась ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 15:16 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320У Арии лучше музыка - более мелодичная. И у Кипелова лучше вокал, чем у Диккенсона. Плюс тексты песен у Арии более осмысленные.Будем бить культурой по мракобесию... Вот культура [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2014, 15:58 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Мне не все песни нравятся. Я никогда и не был за то, чтобы "от и до" слушать. Но процентов 30% точно у "Арии" хорошие песни. И, что интересно, с возрастом я, может, песен 10 бы выкинул из нравящихся, но чтобы полностью забить - нет. Батенька, вам прямая дорога в госдуру) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2014, 09:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320И это, ты чего-нибудь про ECS слышал? И почему оно с играми связано в первую очередь (кстати, Dungeon Siege 1 рулит, особенно с картой Utraean Peninsula)? Это в этих ваших энтерпрайзах где-нибудь применяется? Ахаха, почитал . Подучал, что за шняга? Потом дошёл до последней части , где автор описал EAV . Разница в датах публикации между этими частями - 2 года. Два года морочить людям головы, чтобы потом выдать некую банальщину. И при этом это типа "будущее ММО", передовой край игроразработки. Судя по таким статьям, геймдев это уровень где-то джуниоров-мидлов. Между тем на всяких игровых и около того форумах царит мнение как раз наоборот - игроразработчики почитаются за небожителей, "выжимыющих всё из железа", а всяких энтерпрайз-разработчиков - за распоследних быдлокодеров. В реальности же всё наоборот - геймдев подхватывает азы из энтерпрайза с опозданием лет на 10, а "выжимать всё из железа" всего лишь означает задрачивать ассемблер, чтобы втиснуться в спецификации сраных консолек, железо которых не меняют по 10 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2014, 20:02 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320user7320И это, ты чего-нибудь про ECS слышал? И почему оно с играми связано в первую очередь (кстати, Dungeon Siege 1 рулит, особенно с картой Utraean Peninsula)? Это в этих ваших энтерпрайзах где-нибудь применяется? Ахаха, почитал . Подучал, что за шняга? Потом дошёл до последней части , где автор описал EAV . Разница в датах публикации между этими частями - 2 года. Два года морочить людям головы, чтобы потом выдать некую банальщину. И при этом это типа "будущее ММО", передовой край игроразработки. Судя по таким статьям, геймдев это уровень где-то джуниоров-мидлов. Между тем на всяких игровых и около того форумах царит мнение как раз наоборот - игроразработчики почитаются за небожителей, "выжимыющих всё из железа", а всяких энтерпрайз-разработчиков - за распоследних быдлокодеров. В реальности же всё наоборот - геймдев подхватывает азы из энтерпрайза с опозданием лет на 10, а "выжимать всё из железа" всего лишь означает задрачивать ассемблер, чтобы втиснуться в спецификации сраных консолек, железо которых не меняют по 10 лет. При этом чувак из тех статей по ссылкам ни в одной своей статье не обмолвился ни о .NET, ни о C#, ни о LINQ или EF, ни даже об ORM или EAV. Типа он сам с пацанами это придумал, когда они свою ММОшку писали. И потом пишет "теперь я не работаю в разработчиках ММО, а работаю консультантом для них". Пипец, джуниор наблатыкался азов и пошёл себя продавать консультантом. Цитата с пятой части статьи авторIf you know literally nothing about Relational data, RDBMS’s, and/or SQL (which is true of most game programmers ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2014, 20:11 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402958]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
129ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 235ms |
0 / 0 |