Я так долго программировал, что мне трудно не отставать от языковых изменений...
Действительно ли можно установить такие свойства после .net v2
public string LocaleName
{
get;
set;
}
Не требуется внутреннее поле? Похоже, компилятор заботится об этом в последнее время?
Да, это новая функция в С# 3.0
Просто, чтобы вы знали, вы также можете сделать что-то вроде этого:
public string MyString
{
get;
private set;
}
который дает вам общедоступный аксессор, но частный сеттер.
Это нормально, если вам не нужно проверять, правильно ли установлены значения.
Вы можете взглянуть на С# Specification.
Да, они называются 'автоматически реализованные свойства. Компилятор создаст резервное поле для вашего имущества.
Поскольку "автоматически реализованные свойства" являются "компилятором С#", вы можете использовать их в своем коде и целевой .NET framework 2.0, если вы используете компилятор С# 3.0 для компиляции вашего кода.
Да. В С# 3.0 и более поздних версиях автоматически реализованные свойства упрощают декларацию свойств, когда в аксессуарах свойств не требуется дополнительная логика. Они также позволяют клиентскому коду создавать объекты. Когда вы объявляете свойство, как показано в следующем примере, компилятор создает приватное, анонимное поле поддержки может быть доступно только через свойство get и set accessors.
Да, они называются автоматические свойства и будут генерировать фоновое поле за кулисами.