Public and Internal members in an Internal class?
Consider this case: public interface IBar { void Bar(); } internal class C : IBar { public void Bar() { } } Here C.Bar cannot be marked as internal; doing so is an error because C.Bar can be accessed by a caller of D.GetBar(): public class D { public static IBar GetBar() { return new … Read more