![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.07.2013
Сообщений: 5
|
![]()
Я, по большей части, программист C++ и Delphi.
Сейчас активно занялся C#, поэтому следующий вопрос для меня остаётся непонятным. Предположим следующий код. Изменение вытащенного из XmlDocument'а XmlNode'а влияет на документ: Код:
Код:
Код:
Так в чем разница и когда можно использовать такой странный способ изменения объектов, а когда нет? И как это работает, передаются указатели или что? Заранее спасибо за ответ ![]() |
![]() |
![]() |
![]() |
#2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
с чего тут копия, и в каком языке вы видели копию?
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 19.07.2013
Сообщений: 5
|
![]()
Предположим, такой код C++:
Код:
string c = a переносит значение a в c. И такой код C#: Код:
|
![]() |
![]() |
![]() |
#4 | ||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
так и в шарпе также
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#5 |
Регистрация: 19.07.2013
Сообщений: 5
|
![]()
Ну конкретно с подобными объектами в других языках не работал, поэтому извиняюсь за глупый вопрос.
Так что, всегда, когда я получаю объект TreeNode, ListViewItem или XmlNode, я получаю что-то вроде указателя на этот объект в общем документе \ списке \ таблице? А что делать, если я хочу получить копию объекта и работать с ним, не затрагивая документ? |
![]() |
![]() |
![]() |
#6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
естественно клонировать надо, руками, ктото имеет уже метод Clone, но не все
|
![]() |
![]() |
![]() |
#7 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 19.07.2013
Сообщений: 5
|
![]() |
![]() |
![]() |
![]() |
#9 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
это указатель, в шарпе они есть ... но ими пользуются только если ооооч надо
в делфи все точно также |
![]() |
![]() |
![]() |
#10 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Вам нужно просто почитать про ссылочные типа и типы "по значению" в сишарпе. В инете вагон статей по данному вопросу.
Все простые типы - передаются по значению, и если они используются как аргументы - то делается копия. Строки - специальная саментика, они хоть и не простые типы, но передаются тоже по значению. Также структуры передаются по значению. Все остальные типы - объекты, интерфейсы, делегаты и прочее - типы ссылочные и передаются всегда по ссылке. В дельфи, кстати, всё практически точь-в-точь также. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметров в макрос | masterbet | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 28.12.2011 11:07 |
Передача параметров | _Mixer_ | Общие вопросы по Java, Java SE, Kotlin | 0 | 22.09.2011 20:17 |
Передача параметров в DLL | -Flasher- | Общие вопросы Delphi | 2 | 04.06.2010 18:05 |
Передача параметров | aesoem | Общие вопросы Delphi | 8 | 15.07.2008 21:51 |
Передача параметров | Gudzon | Общие вопросы Delphi | 12 | 08.02.2007 08:19 |