How do I grab the Type
of the inherited class and pass it into the base constructor of the class also inherited? See the code sample below:
// VeryBaseClass is in an external assembly
public abstract class VeryBaseClass
{
public VeryBaseClass(string className, MyObject myObject)
{
}
}
// BaseClass and InheritedClass are in my assembly
public abstract class BaseClass : VeryBaseClass
{
public BaseClass(MyObject myObject) :
base(this.GetType().Name, myObject) // can't reference "this" (Type expected)
{
}
}
public class InheritedClass : BaseClass
{
public InheritedClass(MyObject myObject)
{
}
}
The line base(typeof(this).Name, myObject)
doesn't work because I can't reference this
yet, as the object hasn't finished constructing and therefore doesn't exist.
Is it possible to grab the Type
of the currently constructing object?
EDIT:
Corrected the sample as orsogufo suggested, but still doesn't work, as this
is undefined.
EDIT 2:
Just to clarify, I want to end up with "InheritedClass"
being passed into the VeryBaseClass(string className, MyObject myObject)
constructor.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…