AFAIK, согласен, что доступ к виртуальным членам из конструктора - опасная практика.Можем ли мы преодолеть это с помощью дополнительного шага, метода, для выполнения необходимой инициализации?например:
public class EntityAlpha {
public virtual string Value { get; protected set; }
public EntityAlpha(string value) {
Value = value;
}
}
для замены на
public class EntityAlpha {
public virtual string Value { get; protected set; }
public EntityAlpha(string value) {
AssignValue(value);
}
private void AssignValue(string value) {
Value = value;
}
}
Каковы последствия использования этого дополнительного метода?Это все еще опасно, как использование виртуального члена в конструкторе или худший ?!Как проверить, не вредно ли это предположение?