Назначение ссылки не создает копию в C#. Вы создаете только новый экземпляр в Main
, поэтому существует только один экземпляр ClassToBeAssigned
.
Исключение составляют типы значений; они нуждаются в особой заботе. Если бы ClassToBeAssigned
было struct
, а не class
, каждый вызов Assign(testAssignment);
фактически создавал бы новый экземпляр, который является копией testAssignment
. Обратите внимание, что даже в этом случае DoSomething(assignment);
будет , а не приведет к новой копии. Если вы хотите больше узнать об этой топи c, читайте о боксе в C#.
Что касается DoSomething
, она абсолютно ничего не делает, поэтому неясно, что вы ожидаете там произойти. :)