Parece que no hay sintaxis de lenguaje para especificar tanto un constructor this() como un constructor base(). Dado el siguiente código:constructores this() y base() en C#
public class Bar : Foo
{
public Bar()
:base(1)
//:this(0)
{ }
public Bar(int schmalue)
:Foo(1)
{
//Gobs of initialization code
...
Schmalue = schmalue;
}
public int Schmalue { get; private set; }
}
public class Foo
{
public Foo()
{
Value = 0;
}
public class Foo(int value)
{
Value = value;
}
public int Value { get; private set; }
}
El compilador me da un error que indica que '{' se esperaba cuando el descomentando: esto (0) llamada. Esto es molesto porque me causa factorizar mi código en un método privado, cuando esta funcionalidad se proporcionó claramente para evitar tal cosa.
¿Simplemente estoy haciendo esto mal? No intenté separador, punto y coma, coma ... Parece que esto fue solo un descuido del equipo de desarrollo. Me interesa saber por qué se omitió esto, si estoy haciendo esto de la manera incorrecta o si alguien tiene buenas sugerencias para las alternativas.
posible duplicado de [Llamando al constructor anulado y al constructor base en C#] (http://stackoverflow.com/questions/335286/calling-overriden-constructor-and-base-constructor-in-c) – Oded
Gracias por todo de la respuesta. En esencia, el problema es que esto() también puede llamar a otro constructor base. – Sprague