what is 'this' constructor, what is it for
Solution 1:
It's used to refer to another constructor in the same class. You use it to "inherit" another constructor:
public MyClass() {}
public MyClass(string something) : this() {}
In the above, when the second constructor is invoked, it executes the parameterless constructor first, before executing itself. Note that using : this()
is the equivalent of : base()
, except it refers to a constructor in the same class, instead of the parent class.
There's an article about constructors here (MSDN), which provides a usage example:
public Employee(int annualSalary)
{
salary = annualSalary;
}
public Employee(int weeklySalary, int numberOfWeeks)
: this(weeklySalary * numberOfWeeks)
{
}
Solution 2:
It's used to invoke another constructor in the class:
public class Test {
public Test() : this("AmazingMrBrock")
{
}
public Test(string name)
{
Console.WriteLine(name);
}
}
http://msdn.microsoft.com/en-us/library/vstudio/ms173115.aspx
Solution 3:
The this keyword is used in many context and giving a complete answer will be possible only replicating the entire authoritative source. The C# Language Reference
The this keyword refers to the current instance of the class and is also used as a modifier of the first parameter of an extension method.