|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
Есть сервер и клиент класс на сервере Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
теперь на клиенте нужен такой же класс но для него необходимы дополнительные методы для взаимодействия с пользователем и сервером и static члены. Как понимаю partial в разных сборках нельзя. Делаю наследование. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
вариант сделать конструктор, и конструктор копии для базового класса Код: c# 1. 2. 3.
Далее начинаю разбираться с конструктором копии для базового класса, натыкаюсь на Object MemberwiseClone() и понимаю я попал, единственный путь вручную самостоятельно делать конструктор копии. Вопрос. Я всё правильно описал или где то ошибся? Есть ли ошибка в выбранной архитектуре? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 11:18 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXX, "конструктор копии" ухо режет, да и как-то сам этот термин не вяжется с контекстом решаемой задачи... на что вы там натыкаетесь - не ясно... посмотрите чтонить из многочисленных реализаций deep copy И на языке вертится... "инкапсуляция" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 11:41 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 11:58 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXX, Я так и не понял как связаны три термина в заглавии топика с вопросом. И что значит сервер и клиент? названия объектов? Для чего нужен такой же класс на клиенте? Ничего не понятно, можно попросить Вас сформулировать вопрос яснее? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 12:23 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
AxeleronSergMCMLXXX, Я так и не понял как связаны три термина в заглавии топика с вопросом. И что значит сервер и клиент? названия объектов? Для чего нужен такой же класс на клиенте? Ничего не понятно, можно попросить Вас сформулировать вопрос яснее? 1. Три термина связаны таким образом, что ограничения одного требует использование следующего и в конечном итоге заканчивается Object MemberwiseClone() , из которого конструктор базового класса не сделать. Соответственно появляются вопросы: Я всё правильно описал или где то ошибся? Есть ли ошибка в выбранной архитектуре? Клиент/серверное приложение. Есть 2 различных типа клиента. На одном .NET клиенте пользователь обрабатывает заказ (диалоги не нужны ни серверу ни второму клиенту) сохраняет в файл и отправляет его на сервер. Второй клиент (1с) обращается к серверу с именем файла загружает его в сервер и получает все данные из этого заказа, но в формате СтрокаВнутр. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 12:44 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXX, Не понимаю зачем ты static понавтыкал? О каком наследовании может идти речь?! static нужен для того, чтобы мы пользовались классом как контейнером без его создания. Примером может служить класс Math с функцицией Math.ABS. Ясное дело мы не можем от такого класса унаследоваться. Может я чего-то не так понимаю?! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 13:14 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
Новопашин ВладимирSergMCMLXXX, Не понимаю зачем ты static понавтыкал? О каком наследовании может идти речь?! static нужен для того, чтобы мы пользовались классом как контейнером без его создания. Примером может служить класс Math с функцицией Math.ABS. Ясное дело мы не можем от такого класса унаследоваться. Может я чего-то не так понимаю?! При чём тут статики, они просто загружают сохраняют в файл. Смысл в том что и базовый и производный класс должны сериализоваться и десериализоваться в/из одного и того же файла: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Или может не извращаться с конструктором, а сразу сделать эти 2 функции для производного класса OrderClient, но что то как то кривовато. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 13:31 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXXНовопашин ВладимирSergMCMLXXX, Не понимаю зачем ты static понавтыкал? О каком наследовании может идти речь?! static нужен для того, чтобы мы пользовались классом как контейнером без его создания. Примером может служить класс Math с функцицией Math.ABS. Ясное дело мы не можем от такого класса унаследоваться. Может я чего-то не так понимаю?! При чём тут статики, они просто загружают сохраняют в файл. Смысл в том что и базовый и производный класс должны сериализоваться и десериализоваться в/из одного и того же файла: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Или может не извращаться с конструктором, а сразу сделать эти 2 функции для производного класса OrderClient, но что то как то кривовато. Я в упор не вижу базового и производного класса. Вот я наваял код. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Смысл следующий - класс A, базовый, класс B производный. В базовом классе я сделал метод класса Method1 и метод экземпляра класса A (со словом static). В классе B, показываю как ими воспользоваться. Класс B наследует метод базового класса A Method1, а методом Method2, он может воспользоваться не создавая класс, а просто вызвав экземляр класса A - A.Method2. В твоем случае ни о каком наследовании речи не идет - просто тупо вызывает контейнеры классов. Зачем ты строчке Код: c# 1.
, наследуешься, когда в функции Код: c# 1.
, ты и так вызываешь экземплярный метод Код: c# 1.
. В данном случае наследование не причем. Ты просто тупо кидаешь ссылку на библиотеку и пользуешься ей. Наследование предполагает нечто иное. Если тебе надо воспользоваться уже готовым кодом, то static точно нужно убрать или следуя твоей логике на сервере нужно написать вызов экземпляра класса Order.LoadFromFile(FileName) - но еще раз повторю - это нихрена не наследование. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:28 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
Новопашин Владимир... Наследование необходимо для всех остальных функций (которые здесь не указаны), а статики переопределяются, в производном классе добавляются ещё функции и статик данные (которые в файл сохранять не надо т.к. они нужны только для взаимодействия клиента с сервером и редактирования заказа). Смысл чтобы из файла можно было прочитать объект как в базовый так и в производный класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 15:28 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
И при этом не делать конструктор типа Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
к чему такие сложности если есть MemberwiseClone, но как его здесь использовать и можно ли вообще, не пойму. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 15:36 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXXа статики переопределяются Статики не переопределяются Статические классы запечатаны, поэтому их нельзя наследовать. Они не могут быть унаследованы ни от каких классов, кроме Object. Статические классы не могут содержать конструктор экземпляров, но могут содержать статический конструктор. Вот здесь можно подробнее посмотреть. https://msdn.microsoft.com/ru-ru/library/79b3xss3.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 16:05 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXXИ при этом не делать конструктор типа Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
к чему такие сложности если есть MemberwiseClone, но как его здесь использовать и можно ли вообще, не пойму. В этот момент приходим к дзен. Зачем нужно было плодить столько классов - почему и главное для чего это было сделано?! Сдается мне, TC чего-то не договаривает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 16:09 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
SergMCMLXXX, если на "клиенте" доступны статические методы класса, определённого на "сервере", то почему не использовать сам класс?! И не нужен никакой дополнительный класс. Тем не менее, покажу плохой пример: Код: 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.
Применяем генерики. Использование: Код: c# 1. 2. 3. 4. 5.
Json-сериализация (как и xml) удобна тем, что можно одни и те же данные мапить на разные классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 17:26 |
|
Partial class, наследование, конструктор копии
|
|||
---|---|---|---|
#18+
petalvik... Сам класс использовать можно, потому что сборка сервера включена в клиента. Но функциональности класса от сервера недостаточно, на клиенте есть дополнительные методы для редактирования заказа пользователем с формами которые серверу не нужны, дополнительные методы для проверки корректности заказа на сервере и еще один допустимый для чтения формат файла, который серверу не нужен. ... Хотя может объединить клиент и сервер в одну сборку, а потом использовать ее по разному из приложений клиента и сервера, тогда вообще никаких проблем не будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 18:47 |
|
|
start [/forum/topic.php?fid=20&fpage=82&tid=1401415]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
100ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 509ms |
0 / 0 |