Есть ли способ получить доступ к полю поддержки для свойства, чтобы сделать проверку, изменить отслеживание и т. Д.?Признание поля поддержки в авто property
Возможно ли следующее: Если нет, то какие-либо планы по его использованию в .NET 4/C# 4?
public string Name
{
get;
set
{
if (value != <Keyword>)
{
RaiseEvent();
}
<Keyword> = value;
}
}
Основной вопрос у меня есть, что использование авто свойств не позволяет одной и той же гибкости в проверке и т.д., что свойство с явным полем подложки делает. Однако явное поле поддержки имеет недостаток в некоторых ситуациях, позволяющих классу, в котором он содержится, для доступа к полю резервного копирования, когда он должен получать доступ и повторно использовать проверку, отслеживать изменения и т. Д. Свойства, как и любой другой класс, к которому можно получить доступ собственность извне.
В приведенном выше примере, доступ к полю подложки будет область видимости собственности, таким образом, предотвращая обход проверки собственности, отслеживание изменений и т.д.
Edit: Я изменил < Резервное поле> для < Ключевого слова >. Я бы предложил новое ключевое слово, подобное значению. Поле было бы неплохо, хотя я уверен, что он используется во множестве существующего кода.
Это приятное решение, но много кода, в котором доступ к полю точно так же, как мы получаем новое значение в сеттере с ключевым словом value быть более кратким и элегантным. –
Возможно, вы можете сделать синтаксис более приятным, добавив operator = и coersion в T в класс ValidatedValue. В основном вы хотите, чтобы он вел себя как ValidatedValue. - это T. –