Please, note that I don't ask how to do something. This question is about design decision by language authors.
Let's say you have a base class with constructor and a method:
public class BaseClass
{
public BaseClass(string argument)
{
}
public void SomeMethod()
{
}
}
And you also have derived class that is empty (or, in reality, has other unrelated stuff):
public class DerivedClass : BaseClass
{
public DerivedClass() // Some other constructor not used in the example, just so it will compile
}
So, when you will try to call the method on an instance of the derived class, it will work, but if you try to call the constructor, it will result in compile error:
var d = new DerivedClass("argument"); // error CS1729: The type `DerivedClass' does not contain a constructor that takes `1' arguments
d.SomeMethod(); // Works OK
What is the reason behind this language design decision?