Вы используете изменяемые структуры, что настоятельно не рекомендуется именно по этой причине.
Ваш код здесь:
public void Foo(int z)
{
MyVar.Update(z);
_secondVar.Update(z);
}
эквивалентен этому:
public void Foo(int z)
{
A tmp = MyVar; // Creates a copy
tmp.Update(z);
_secondVar.Update(z);
}
Ваш _secondVar.Update(z)
код меняет значение _secondVar
, потому что вы вызываете его напрямую Переменная. Это не относится к вашему свойству - использование метода получения свойства фактически вызывает метод, который возвращает значение, которое является копией значения переменной.
Если бы вы использовали классы, вы бы увидели ожидаемое поведение, потому что тогда вы бы не пытались изменить значение базовой переменной, а изменили бы содержимое внутри объекта, к которому она относится.
Catalina Update / Настольные Полномочия
я сталкиваюсь с этим один раз в год на macOS. Я обычно использую apache2 для хостинга папки на моем рабочем столе.
, При попытке предоставить доступ к desktop
папка, необходимо следовать за этим, чтобы позволить httpd иметь доступ ко всем папкам: https://apple.stackexchange.com/a/373139/353465
На моей 10.6 системе:
vhosts folder:
owner:root
group:wheel
permissions:755
vhost.conf files:
owner:root
group:wheel
permissions:644
Тема 2-месячной давности, но лучше поздно, чем никогда! В версии 10.6 у меня установлена папка документов моего веб-сервера:
owner:root
group:_www
permission:755
_www - это пользователь, который запускает apache под Mac OS X. Затем я добавил ACL, чтобы предоставить полные разрешения группе администраторов. Таким образом, я все еще могу вносить какие-либо изменения с моим пользователем-администратором без необходимости аутентифицироваться как root. Кроме того, когда я хочу разрешить веб-серверу писать в папку, я могу просто выполнить chmod до 775, оставив всех остальных чем root: _www только с разрешениями на чтение / выполнение (за исключением всех примененных мной ACL)