No estoy seguro de si esto es algo extraño de hacer o no, o si es de alguna manera el olor del código ... pero me preguntaba si había alguna manera (algún tipo de patrón de oops sería bueno) para "lanzar" un tipo de base a una forma de su tipo derivado. Sé que esto tiene poco sentido ya que el tipo derivado tendrá una funcionalidad adicional que el padre no ofrece, que en sí mismo no es fundamentalmente sólido. Pero, ¿hay alguna forma de hacer esto? Aquí es un ejemplo de código para que yo pueda explicar mejor lo que "estoy pidiendo.Una forma de convertir un tipo de base en un tipo derivado
public class SomeBaseClass {
public string GetBaseClassName {get;set;}
public bool BooleanEvaluator {get;set;}
}
public class SomeDerivedClass : SomeBaseClass {
public void Insert(SqlConnection connection) {
//...random connection stuff
cmd.Parameters["IsItTrue"].Value = this.BooleanEvalutar;
//...
}
}
public static void Main(object[] args) {
SomeBaseClass baseClass = new SomeBaseClass();
SomeDerivedClass derClass = (SomeDerivedClass)baseClass;
derClass.Insert(new sqlConnection());
}
Sé que esto parece tonto, pero ¿hay alguna manera de lograr algo de este tipo?
El uso del término "emitir" en esta pregunta es incorrecto. La conversión implica que el objeto que lanzamos ya es un objeto de este tipo. Por ejemplo: objeto o = 3; MethodWithIntegerParam ((int) o); En su pregunta baseClass no es una instancia con clase derivada. Entonces, lo que estás buscando es conversión y no conversión. – AXMIM