Это зависит от типа.Существуют типы значений и ссылочные типы.
Типы значений сохраняют само значение в памяти, и каждый раз, когда вы его передаете, вы просто копируете значение (то есть тип значения), если только выиспользуйте что-то вроде public void Test(ref int x)
.Факт наличия ref означает передачу целого числа по ссылке.
Когда у вас есть переменная ссылочного типа (объект), вы в основном просто держите указатель.Таким образом, он выдал бы ту же ссылку на объект.
Вы можете подтвердить это, расширив свой код, выполнив что-то вроде этого:
obj2.ID = 3;
Console.WriteLine(obj1.ID); // => 3
obj1 (или сам объект, так как obj1 являетсяпросто ссылка) будет GC'd, когда больше нет ссылок на объект.