Поскольку вопрос стоит, он является неполным.
Ключевое слово this
никогда не будет нулевым, поскольку оно имеет область видимости только внутри членов экземпляра класса.Если есть экземпляр, this
не является нулевым, поэтому по определению он никогда не может быть нулевым.
Когда вы передаете аргумент в WriteLine
, он просто вызывает ToString
для аргумента.Если вы передадите аргумент, такой как ссылка на класс, он выведет имя типа, если оно не переопределено.В вашем случае он должен быть переопределен, чтобы возвращать строковый литерал "null".Передав аргумент null
, такой как:
string s = null;
Console.WriteLine(s);
Просто ничего не печатается.
Если вы хотите сохранить ссылку в списке, вы не сохраните строковое представлениессылки, вы сохраняете саму ссылку:
List<Wire> wires = new List<Wire>();
wires.Add(new Wire());
Обновление: C # не имеет "обычного конструктора копирования", если вы не реализовали его самостоятельно.Однако даже если вы реализуете его самостоятельно, он создает другой объект.