Я посмотрел и не нашел ничего похожего на то, с чем имею дело. Надеюсь, это решение или предложение для лучшей реализации. У меня есть класс, который может быть передан с необязательным параметром, который сохраняется в созданном экземпляре. Затем у меня есть производный класс с аналогичным необязательным параметром, но в его конструкторе без параметров выполняется другой материал подготовки независимо от необязательного параметра. Какой был бы правильный способ заставить его вызвать конструктор параметров базового класса, но все же сделать непараметрический конструктор полученного., вызывающие как base(), так и конструкторы this()
public class MyBaseClass
{
protected object preserveParm;
protected int someValue;
public MyBaseClass()
{
someValue = 1;
}
public MyBaseClass(object SomeParm) : this()
{
preserveParm = SomeParm;
}
}
public class DerivedClass : MyBaseClass
{
private int customSecondaryProp;
private DateTime when;
public DerivedClass()
{
customSecondaryProp = 10;
someValue = 5;
}
public DerivedClass(object SomeParm) : base(SomeParm)
{
when = DateTime.Now;
}
}
Так что, если я делаю
DerivedClass test = new DerivedClass("testing");
мне это нужно, чтобы попасть в базовый класс, чтобы сохранить параметр, но также ударила не-параметр производного класса, чтобы установить образцы фиктивных значений.
В настоящее время действует метод Derived, который затем попадает в конструктор параметров базового класса, который вызывает «this()» базового класса и возвращает цепочку в конструктор параметров DerivedClass, заканчивается сам , но никогда не попадает в конструктор DerivedClass. Есть ли способ принудительно использовать как базовый, так и безразмерный конструктор DerivedClass без параметров?
я обычно имею непараметризированный конструктор вызвать параметризованный конструктор с соответствующим значением, а не пути вокруг вас» повторять это. Затем вся логика заканчивается в наиболее параметризованном конструкторе (класса) и может вызывать наиболее подходящий конструктор базового класса (который затем, при необходимости, снова заполняет пропущенные параметры, чтобы называть его наиболее параметризованную форму) –
@ Damien_The_Unbeliever, никогда не думал об обратном, потому что фактический входящий объект более сложный, чем просто «объект», но будет изучать его. Благодарю. – DRapp
@nawfal, для вопросов, в которых решение уже было выбрано, не беспокойтесь, пытаясь отменить комментарии к дубликатам ... просто потерянная на мой взгляд. – DRapp