#313 – Accessibility of Constructors in a Class
April 28, 2011 Leave a comment
You can apply access modifiers to instance constructors, dictating what code is allowed to create an instance of the class using a signature that matches the constructor.
- public – All code has access
- private – Only code in defining class has access
- protected – Code in defining class or derived classes has access
- internal – All code in defining assembly has access
- protected internal – Code in defining assembly or in derived classes has access
// All code public Dog(string name, int age) { Name = name; Age = age; } // Only code in this class has access private Dog() { Name = "UNKNOWN"; Age = 0; } // Code in this class or subclass has access protected Dog(string name) { Name = name; Age = 1; } // Code in same assembly has access internal Dog(int age) { Name = "INTERNAL"; Age = age; } // Code in same assembly or derived classes has access protected internal Dog(double age) { Age = (int)age; }