Я хотел бы использовать следующий код С# 6
var joe = new Self();
Console.WriteLine(joe);
... и получить следующий вывод:
Джо
Следующая попытка
class Self {
public string Name { get; set; } = nameof(this);
public override string ToString() {
return Name;
}
}
терпит неудачу, поскольку nameof
не может быть применен к this
. Есть ли обходной путь для этой проблемы?
ИЗМЕНИТЬ. Сценарий, с которым я работаю, гарантирует, что никакие две ссылки не указывают на один и тот же объект Self
.
var joe = new Self(); var jack = joe;
. Должен лиName
возвращать"joe"
,"jack"
или оба? - person Frédéric Hamidi   schedule 08.01.2015nameof(joe)
- person i3arnon   schedule 08.01.2015ReferenceEquals
,Equals
иGetHashCode
, возможно, с пользовательской реализацией (например,Equals
может проверять поле/свойствоId
в двух проверяемых экземплярах). Ваша идея использоватьnameof
для достижения такой цели очень странная... - person Massimiliano Kraus   schedule 17.11.2016