Рассмотрите такой сценарий, у вас есть некоторые данные, но вы не хотите раскрывать его напрямую, кроме того, есть какая-то логика. Так что вы пишете что-то вроде этого:Можно ли минимизировать шаблон обертки на однострочный?
private string field;
public string Field
{
get { return this.field; }
set
{
// some logic with previous value
this.field = value;
// some logic with new value
}
}
Ok, прохладную, но как только вы пишете это для N-й раз у вас есть достаточно, чтобы вы пишете класс - оболочку для него. Поскольку вы не хотите подвергать реализации вы пишете это:
private Wrapper<string> field = new Wrapper<string>();
public string Field
{
get { return this.field.value;}
set { this.field.value = value; }
}
Так, хорошо, общий код скрыт, реализация не подвергается, но все еще есть много повторений.
Вопрос - можно ли его сжать?
Выше это мой главный вопрос о шаблоне в C#, но я оставляю это для комментариев - есть ли язык, который поддерживает этот шаблон в той степени, в которой требуется только одна строка. Что-то вроде этого:
public string Field { get; set; } <- new Wrapper<string>(); // pseudo code
Используйте фрагмент кода - очень удобно в вашем случае, и дешевле, чем на другом языке. – Fabio
@Fabio, фрагменты AFAIK в порядке, когда ** создается ** код (запись), но как только они находятся в коде, вы должны обрабатывать их вручную. Таким образом, это не решение как таковое, это просто способ автоматизации ввода текста, а не для управления кодом в целом. – greenoldman
Вы можете использовать фрагмент для «набора» вашего класса Wrapper. В этом случае ваша управляемая логика останется в одном месте -> в вашем классе-оболочке – Fabio