Нет; PointF
является struct
, поэтому имеет семантику копирования, а не является объектом ; как только вы его получили - это отдельная и изолированная копия (если вы не используете что-то вроде ref
/ out
, что ... более тонко). Структура на самом деле копируется несколько раз в вашем примере.
Кстати, следствием этого является то, что на самом деле очень плохая идея иметь изменяемые структуры - поэтому в большинстве случаев вам следует избегать сценария, в котором вы можете сказать:
p.X = 100;
, поскольку это вызывает больше путаницы, чем помогает. В частности, следующее абсолютно недействительно:
a.Position.X = 100; // won't even compile
(здесь компилятор обнаруживает, что вы изменяете копию структуры, которая существует только во время самой мутации, что означает, что ваше изменение никуда не денется никуда и почти наверняка является ошибкой)