|
Использование Span C#
|
|||
---|---|---|---|
#18+
Привет Пытаюсь реализовать Clone через стек: Код: c# 1. 2. 3. 4. 5. 6.
В коде e должно клонироваться в e1 при помощи стека, но клонирования не происходит. Оба e и e1 ссылаются на одну и ту же область памяти (последняя строка кода меняет FirstName как в e так и в e1) Span вроде ж должен помещать e1 в другую область адресов стека? Или я не прав? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 20:01 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
Renziglov Span вроде ж должен помещать e1 в другую область адресов стека? Или я не прав? Не прав. Span по сути это всего лишь ссылка на область памяти, может ссылаться на любую область памяти, не только на стеке. Если хотите на стеке, нужно делать так: Код: c# 1.
Но опять таки, в данном случае EmployeeDTO -- это класс, значит в массиве у вас окажутся ссылки на объекты в куче, а не сами объекты. Так что вы ничего не выигрываете таким образом. Не нужен вам Span. Модератор: Тема перенесена из форума "Программирование". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:34 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что ты хочешь сделать клонирование объекта без копирования руками всех его свойств? Почему тогда не взять просто автомеппер? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 08:12 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
>fkthat, сегодня, 08:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326677&msg=22155675][22155675] >Я правильно понимаю … <В таком случае, может быть применить это Использую так, пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 12:21 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
ВМоисеев, Все еще плохо понимаю, а зачем там Span? Ты чего добиться пытаешься-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 12:34 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
fkthat, Ну вообще Span предпочтительно использовать во всех новых интерфейсах, на на вход принимается массив. Т.е. вместо класического Some<T>(T[] array, int offset, int count) крайне желательно писать так Some<T>(Span<T> span). А ещё предпочтительно принимать ReadOnlySpan, если не планируется вносить изменений в массив. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:21 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
hVostt, Span<T> инвариантен, в отличии от ссылочного массива даже не знаю, такое ограничение, это плюс или минус :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:17 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
>fkthat, сегодня, 12:34 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326677&msg=22155890][22155890] >...Ты чего добиться пытаешься-то? < TC -->"Пытаюсь реализовать Clone через стек" У меня такой же вопрос. xrow - состояние сущности после UPDATE yrow - состояние сущности до UPDATE и оптимистическая блокировка ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:23 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
Roman Mejtes hVostt, Span<T> инвариантен, в отличии от ссылочного массива даже не знаю, такое ограничение, это плюс или минус :) Смотря в каком контексте? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:43 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
ВМоисеев xrow - состояние сущности после UPDATE yrow - состояние сущности до UPDATE Если бы кто-то мозги не колупал, а назвал переменные beforeUpdateRow и afterUpdateRow, не нужны были бы эти бессмысленные объяснения и мусорные комментарии. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:44 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
hVostt Ну вообще Span предпочтительно использовать во всех новых интерфейсах, на на вход принимается массив. Я не знал. Впрочем, не могу припомнить, когда мне последний раз приходила в голову дурная идея передавать в метод массив вместо какой-либо абстракции. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:38 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
fkthat hVostt Ну вообще Span предпочтительно использовать во всех новых интерфейсах, на на вход принимается массив. Я не знал. Впрочем, не могу припомнить, когда мне последний раз приходила в голову дурная идея передавать в метод массив вместо какой-либо абстракции. Когда дело дойдёт до оптимизации узких мест, может и дойти до этого ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:25 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
hVostt Когда дело дойдёт до оптимизации узких мест, может и дойти до этого ) Я еще раз убеждаюсь, что любая новая фича языка или фреймворка используется в первую очередь для её жесткого абьюза. Я вот про неё до сих пор вообще только краем уха знал, зато ТС уже успел на ней какой-то неработающий говнокод наговнокодить, ничего личного ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:11 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
fkthat hVostt Когда дело дойдёт до оптимизации узких мест, может и дойти до этого ) Я еще раз убеждаюсь, что любая новая фича языка или фреймворка используется в первую очередь для её жесткого абьюза. Я вот про неё до сих пор вообще только краем уха знал, зато ТС уже успел на ней какой-то неработающий говнокод наговнокодить, ничего личного Это на самом деле очень крутая штука с точки зрения оптимизации производительности. Ну и для проектирования интерфейсов, работающих с большими объёмами данных. Но это ещё что. В 9-ке ожидаются DU, вот это просто будет революция, не меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:16 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
hVostt Но это ещё что. В 9-ке ожидаются DU, вот это просто будет революция, не меньше. Я от этого уже ожидаю только еще больше говнокода ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:20 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
fkthat hVostt Но это ещё что. В 9-ке ожидаются DU, вот это просто будет революция, не меньше. Я от этого уже ожидаю только еще больше говнокода Вовсе наоборот. Уйдут всякие говёненькие нашлёпки вида OperationResult )) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:27 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 14:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326677&msg=22156029][22156029] >Если бы кто-то мозги не колупал, а назвал переменные… < Зачем? xrow используется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
и применяется в обработчиках SELECT, INSERT, UPDATE, DELETE ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 19:13 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
ВМоисеев >hVostt, сегодня, 14:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326677&msg=22156029][22156029] >Если бы кто-то мозги не колупал, а назвал переменные… < Зачем? xrow используется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
и применяется в обработчиках SELECT, INSERT, UPDATE, DELETE Из названия переменной невозможно понять, что она означает и для чего используется. К слову это касается и всего остального кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 21:19 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
ВМоисеев и применяется в обработчиках SELECT, INSERT, UPDATE, DELETE И ещё, для переноса данных между методами используются поля класса (xrow, yrow..). Что мешает, например, у метода RowToEntity возвращать данные, а не писать в поле класса? Ведь это превращает обычный-то в общем код, в натуральный говнокод. Зачем ходить и трясти своим говнокодом в каждой ветке форума, вместо того, чтобы взять и улучшить его? Видимо это особая форма вуайеризма . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 21:32 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 21:32 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326677&msg=22156278][22156278] >...Что мешает, например, у метода… < А зачем, чем так плохо? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 23:52 |
|
Использование Span C#
|
|||
---|---|---|---|
#18+
ВМоисеев А зачем, чем так плохо? Затем, что вы используете поля класса не по назначению. Поля класса служат для хранения состояние экземпляра класса. Для передачи данных в C# есть мощные инструменты: 1. Аргументы функции 2. Возвращаемый результат функции 3. Возвращаемые через out аргументы функции Но нет предела совершенству. Давайте ещё раз посмотрим на ваш код, как можно сделать ещё более хуже: Код: 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.
Почему вы не идёте до конца в своих подходах? Откажитесь от того, чтобы ваши функции возвращали значение и не используйте аргументы функции. Просто заведите ещё пару десятков полей в классе. В следующий раз, я больше не буду пытаться вам объяснить очевидные вещи, просто буду помечать код, который вы публикуете, что это отвратительный и мерзкий говнокодище, дно в программировании, чтобы новички, которые будут читать форум случайно не использовали эту практику. Не обижайтесь. Вы не хотите развиваться, я понял. Ваше право. Но и моё право писать о том, когда вы публикуете говнокод, ещё и почему-то гордитесь этим. Хотя я бы даже лет 10-15 назад постеснялся подобным гордиться и вообще кому-то показывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 00:07 |
|
|
start [/forum/topic.php?fid=20&fpage=9&tid=1398524]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 169ms |
0 / 0 |