Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. Прошу натолкнуть на мысль, как профессионалы реализовывают следующую задачу: Есть несколько классов. Методы и свойства в классах абсолютно одинаково именованы, и возвращают аналогичные (типизированные) значения. Реализация методов в классах очень разнится, поэтому это не один класс, а множество классов. Есть процедура, в которой в зависимости от входных условий необходимо в операторе ветвления объявить переменную выбранного в зависимости от условия класса. Далее, за оператором ветвления необходимо работать с этой переменной. Но дело в том, что переменная объявленная в операторе ветвления не видна за его пределами. Да, понимаю, можно написать множество функций и в ветвлении обращаться к ним. Но поддержка такого кода тот еще геморр. Очень прошу подсказать решение. Если вводная не понятна, пишите, попробую добавить, разъяснить. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 11:50 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Для этого наследование придумали. Сделай общий базовый класс, а свои классы унаследуй от него и все твои проблемы исчезнут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:04 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
energy75Добрый день всем. Прошу натолкнуть на мысль, как профессионалы реализовывают следующую задачу: Есть несколько классов. Методы и свойства в классах абсолютно одинаково именованы, и возвращают аналогичные (типизированные) значения. Реализация методов в классах очень разнится, поэтому это не один класс, а множество классов. Есть процедура, в которой в зависимости от входных условий необходимо в операторе ветвления объявить переменную выбранного в зависимости от условия класса. Далее, за оператором ветвления необходимо работать с этой переменной. Но дело в том, что переменная объявленная в операторе ветвления не видна за его пределами. Да, понимаю, можно написать множество функций и в ветвлении обращаться к ним. Но поддержка такого кода тот еще геморр. Очень прошу подсказать решение. Если вводная не понятна, пишите, попробую добавить, разъяснить. Спасибо. Язык какой? Шаблон Стратегия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 13:00 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Dima T, Дмитрий Мух, спасибо за участие. с наследованием немного знаком, но, понятное дело недостаточно. Не сдвинулся я с места, не хватает знаний, как прикрутить. Ну, допустим, вот наши классы: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. И вот нам надо их поюзать: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Понятное дело, в последней строчке ошибка, нифига не сработает. Поправьте меня плиз. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 14:00 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Код: 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. И по синтаксису объявления и переопределения методов есть нюансы, зависит от ЯП. По C# можно почитать про наследование и про интерфейсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 14:39 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Dima T, спасибо, вижу что сделал первый шаг. Признаться, пишу на vb, а сюда постил на шарпе, понимая, что сообщество в основном на нём. К сожалению, сейчас нужно прикрепить принтскрин, поэтому и рождена эта строчка. Итак. Сдвинулся с места, нашел собственно того, чего не доставало - Overloads , перегрузки. Ваш Return=0 к этому подвинул. Итак, классы выглядят теперь вот так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Но основная задача не решена. Выбор класса в ветвлении. Ваш пример к сожалению с ошибкой: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 15:18 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
energy75Но основная задача не решена. Выбор класса в ветвлении. Ваш пример к сожалению с ошибкой: Ты криво мой пример перевел, внутри select не надо Dim Я не силен в VB.NET. Почитай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 15:24 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Dima T, ОГРОМНОЕ СПАСИБО!!!!!!!! Все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 20:24 |
|
||
|
Присвоение класса в ветвлении
|
|||
|---|---|---|---|
|
#18+
Опубликую работающий код, вдруг кому.... Код: vbnet 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. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 20:46 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=13&tid=1340062]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 153ms |

| 0 / 0 |
