В классе есть автосвойство (по имени 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. Почему компилятор не генерирует код, подобный используемому, автоматически, когда видит передачу свойства?