Decir que tengo el siguiente:Constructor encadenamiento en conjunción con la invocación constructor base
class Base {
public Base (int n) { }
public Base (Object1 n, Object2 m) { }
}
class Derived : Base {
string S;
public Derived (string s, int n) : base(n) {
S = s;
}
public Derived (string s, Object1 n, Object2 m) : base(n, m) {
S = s; // repeated
}
}
Aviso cómo necesito argumento formal n en ambas sobrecargas del derivado y por lo tanto tengo que repetir la línea N = n;
.
Ahora sé que esto se puede encapsular en un método separado, pero aún necesita las mismas dos llamadas a métodos de ambas sobrecargas. Entonces, ¿hay una manera más "elegante" de hacer esto, tal vez usando this
junto con base
?
Esto es para que yo pueda tener un constructor privado que tome un argumento s
y las otras dos sobrecargas pueden llamar a esa ... ¿o es esto exactamente lo mismo que tener un método privado separado?
¿Qué pasa con sólo llamar a la otra sobrecarga del constructor del constructor que acepta un adicional ¿parámetro? 'this (s, n)' en lugar de 'base (n, m)' –
Modifiqué la pregunta para que refleje mejor lo que tengo actualmente. Cambié los tipos de argumentos del constructor base sobrecargado. –
Ah, muy bien. Al principio no lo publiqué como respuesta porque supuse que me estaba perdiendo algo obvio. Resulta que ese fue de hecho el caso. –