#714 – Accessibility of a Public Method in an Internal Type
November 14, 2012 2 Comments
When you declare a class with an accessibility of internal, the class is usable only from code within the same assembly. If this class then contains a member whose accessibility is public, that member is still limited to an accessibility level of internal. A member of a class cannot be more accessible than the class itself.
This makes sense. If we have code that doesn’t know about about a DogCollar class, it certainly can’t invoke the ReportSize method of the DogCollar class.
// Can only use DogCollar within this assembly internal class DogCollar { // Marked as public, but effectively internal public double Size { get; set; } public DogCollar(double size) { Size = size; } // Also effectively internal public void ReportSize() { Console.WriteLine(string.Format("Collar is {0} in long", Size)); } }