В C # обычно так, что базовые структуры данных имеют проход по значению, что означает, что значение копируется в новую область памяти. Уязвимые типы данных являются только основными, такими как string, int, float и т. Д.
Но если у вас есть объект и вы передаете его как значение или как параметр или просто делаете присваивание другой переменной, не весь объект копируется. Вместо этого целевой объект берет адрес в памяти старого объекта и сохраняет его как свой собственный объект, но все еще ссылаясь на оригинал.
Чтобы скопировать или назначить объект новому пространству памяти, используйте метод CopyTo () -.