Короче говоря, вы смущены о том, что вы думаете, что происходит (или, по крайней мере, в редакции).
В C# есть объекты в памяти и ссылки на эти объекты. Когда вы делаете
foo myFoo1 = new foo(10);
myFoo1
является ссылкой, а значение ссылки место в памяти, где хранится объект foo
типа.
Когда вы
foo myFoo2 = myFoo1;
myFoo2 является ссылкой, а значение ссылки место в памяти, где хранится объект foo
типа - тот же самый объект. Обе ссылки делают одинаковые вещи неразличимо.
myFoo2
и myFoo1
делают одинаковые вещи, так как вы могли бы предотвратить один, разрешая другим?
Если вы имеете в виду «как мне предотвратить привязку двух переменных к одному и тому же объекту?"Есть два решения, в зависимости от того, что вы имеете в виду:
Если проблема заключается в том, что у вас есть две переменные, ссылающиеся на тот же объект, одна переменных мутирует объект и другие переменную„неожиданно“видит изменения, сделать объект неизменный и «мутации» объекта фактически возвращают новый, неизменный объект с внесенными изменениями.
Вы можете сделать объект структурой. Структуры ссылаются на значение, а не по ссылке, поэтому, когда вы делаете одну переменную «point» в структуру другой переменной, она копирует всю структуру в новую переменную вместо копирования ссылки.
Мне любопытно узнать, какую ситуацию вы имеете в виду, где вы хотите предотвратить это. –
Может быть, он смущен, как реализовать singleton в C#? Не знает о 'статических' классах и т. Д.? Я просто догадываюсь. –
Почему вы хотите предотвратить это? –