Насколько я понимаю, и ref, и ref2 являются ссылками на базовый объект (x = 3)
Да.
Что ж, они обе ссылаются на x
, чье начальное значение равно 3
. По сути, у вас есть один целочисленный объект, к которому вы можете обращаться по именам, любым из имен x
, ref
или ref2
.
Затем мы меняем значение ref
Нет, вы противоречите себе.
У объектов есть значения. Ссылки типа ref
не являются объектами, но являются ссылками на объекты, и у них нет собственного значения, которое можно изменить.
Вы сказали, что ref
является ссылкой, что верно - это ссылка на объект типа int, который может принимать значение, и значение которого изменяется, когда вы пишете ref = 100
. Имена x
, ref
и ref2
все еще относятся к одному и тому же целочисленному объекту впоследствии, но теперь его значение равно 100
вместо 3
.
Вы не можете reseat ссылка (сделайте так, чтобы она ссылалась на другой объект), и ссылка не имеет значения для изменения. Он относится к объекту, значение которого можно изменить с помощью ссылки.
Примечание. Я не думаю, что этот вопрос является дубликатом Можем ли мы переназначить ссылку , даже если она содержит некоторые из тех же недоразумений.