Посоветуйте как без создания дополнительных переменных реализовать такое:
public int Rekt {
get;
set {
Logger.Log("new Value " + value);
}
}
Повторюсь, без добавления новых полей
Автосвойства в C# не подразумевают дополнительных операций при get и set, поэтому при их необходимости придется переходить к обычным свойствам.
private int rekt;
public int Rekt {
get => rekt;
set {
Logger.Log("new Value " + value);
rekt = value;
}
}
Кроме этого можно воспользоваться какими-нибудь AOP решениями типа PostSharp.
Нет, того, что вы хотите, в языке нету.
На текущий момент (C# 7.3) вы можете создать либо либо полностью автоматическое свойство, в котором несущее поле создаётся автоматически и вам недоступно, либо полностью неавтоматическое свойство, в котором несущее поле вам приходится декларировать самостоятельно.
В репозитории, посвящённом разработке и развитию языка C#, есть несколько обсуждений, в которых предлагается функциональность, близкая к тому, что нужно вам. Например, вот одно из них: Semi-Auto-Properties; field keyword.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости