Свойства и out
От: Аноним  
Дата: 15.11.10 15:18
Оценка:
В классе есть автосвойство (по имени SourceColumn), заведенное для того, чтобы get и set обладали разным уровнем видимости (public и private соответственно). Иначе использовалось бы поле.

public string SourceColumn
{
    get;
    private set;
}


Кроме него есть и второе автосвойство — TargetColumn. Оба свойства задаются одним и тем же алгоритмом, только разные входные параметры. Поэтому (во избежание copy-paste) для инициализации предусмотрен статический метод

private static bool Init(string data, out string column);


Свойство, однако, нельзя передать для инициализации. Сейчас используется такой код:

string sourceColumn;
Init(data, out sourceColumn);
SourceColumn = sourceColumn;


Как это сделать красивее? Можно автосвойство превратить в обычное свойство на host-поле, а передавать host, но заводить host только ради этого...

P.S. Почему компилятор не генерирует код, подобный используемому, автоматически, когда видит передачу свойства?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.