Reading source code should be the aim of every serious software developer. I am constantly looking for patterns that are interesting and potentially useful for future projects. Anyway, I was reviewing some code over the weekend and there was a pattern that I have not seen for a while.
So below is a basic abstract Mammal class, you have two constructors differentiated by the method signature (of course).
public abstract class Mammal
{
public Mammal()
{
Console.WriteLine("A");
}
public Mammal(bool asf)
{
Console.WriteLine("B");
}
}
So the MyDog class inherits from from Mammal and provides an opportunity to access the either of the base class constructors.
public class MyDog : Mammal
{
public MyDog() : base()
{
Console.WriteLine("1");
}
public MyDog(bool asf) : base(asf)
{
Console.WriteLine("2");
}
}
You can explicitly select which base class constructor gets called by using ": base()" pattern after the constructor. Simple but nice!
Comments are closed.