I just wanted to know the main difference between a static constructor and a private constructor.
I know that Static Constructor is used to initialize the static members of a class. A static constructor cannot access non-static members. It executes before the first instance of a class. We can not determine the time of execution. Static Constructor executes by the CLR not by the object of a class. There are no parameterized static constructors since it is handled by the CLR not by the object. Time of execution might be at the loading of contained assembly.
However, Private Constructor is used to restrict a class to be instantiated and to be inherited. Private Constructor is used whenever a class contains only static members.
Apart from this what is the difference between these two in terms of memory usage and other stuff? Which should be used?