1)A static constructor is called before the first instance is created. i.e. global initializer.
Whereas Private constructor is called after the instance of the class is created.
2)Static constructor will be called first time when the class is referenced. Static constructor is used to initialize static members of the class.
Static members will not be initialized either by private or public constructor.
3)The static constructor will only be executed once.
The private constructor will be executed each time it is called.
In my opinion, private are used with in the class only where it was declared and static methods can be used any where by using static member.
Sorry to all, I made a mistake on my previous code in line 7. Please correct this.For example:- Class A{ int a; private A() { } public A(int b) : this() // Calling private constructor by another constructor. { this.a=b; }}
Normally one uses the private constructor to create a singleton instance of a class,
1. Static constructor is called before the first instance of class is created, wheras private constructor is called after the first instance of class is created.
2. Static constructor will be executed only once, whereas private constructor is executed everytime, whenever it is called.