Присвоение переменной типа "Сборка" делает копию, а не по ссылке?C#

Место общения программистов C#
Anonymous
Присвоение переменной типа "Сборка" делает копию, а не по ссылке?

Сообщение Anonymous »

Мне казалось, что я понимаю, как переменные значения и типа работают в C#, но я столкнулся со случаем, который мне не ясен и не интуитивно понятен. Если у меня есть экземпляр класса типа «Сборка» (System.Reflection.Assembly) и я назначаю его другой переменной, то он выглядит как «Скопированный», а не по ссылке:

Код: Выделить всё

var assembly2= assembly1;
assembly1= LoadOtherAssembly();

Console.WriteLine(assembly2);
Console.WriteLine(assembly1);
Очевидно, я получаю другую сборку (независимо от того, что дает мне LoadOtherAssembly()) во второй строке (assembly1), но «assembly2», похоже, содержит внутри исходную сборку.Всякий раз, когда я делаю это с любым другим классом, этого не происходит (как и ожидалось):

Код: Выделить всё

public class Person
{
public string Name;
}

var dave=new Person();
dave.Name="Dave";
var culley=dave;

culley.Name="Culley";

Console.WriteLine(dave.Name);
Console.WriteLine(culley.Name);

В этом случае оба выплевывают «Калли», как и ожидалось. Чего мне не хватает и чем это отличается от первого случая с использованием «Сборки»?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -reference

Вернуться в «C#»