I want to allow all my child objects to implement static method. For example:
public abstract class A {}
public class B : A {}
public class C : A {}
I want B and C to have DoSomething() static method, where in A there will be default implementation of DoSomething().
What is the bes practice to do so?
You can’t do so. You wouldn’t be able to call the static method polymorphically anyway. Basically, static members and polymorphism don’t work together. Either give up on polymorphism, or create a parallel type hierarchy where those are instance methods.