Browsing the class System.Dynamic.DynamicObject, I find it is concrete (not-abstract) class, but preventing from creating an instance of it directly by making its default constructor protected
.
So what is the point of not making it just abstract with a public
constructor ?
Clarification:
class Base1
{
protected Base1() // protected constructor, concrete class
{
}
}
class Derived1 : Base1
{
public Derived1() : base()
{
}
}
abstract class Base2
{
public Base2() // public constructor, abstract class
{
}
}
class Derived2 : Base2
{
public Derived2() : base()
{
}
}