Can I have constructors with same parameter list but one private and one public or any other access specifier in C#. Thanks in advance.
No, you can't overload either constructors or methods by just varying access modifiers (or return types in the case of methods). You can only overload members if they have different signatures.
See more on this question at Stackoverflow