In C #, you can see the internal class, that is, the internal definition class of the class, such as: System. windows. forms. the Control class has the definition of ControlCollection and ControlAccessibleObject. The internal class is defined to be used by the class itself, and the external class cannot be used. Its function is as follows: for more visibility into internal classes, see the following example: [csharp] v namespace DesignPattern. innerClass {// <summary> // external class // </summary> public class OuterClass {/// <summary> // class name // </ summary> public string Name {get; set;} public string InnerClassName {get {InnerClass inner = new InnerClass (); return inner. name ;}} public OuterClass. innerClass myInnerClass {get; set ;}/// <summary> // internal class (its access modifier determines its external visibility) /// </summary> public class InnerClass {// <summary> // class Name /// </summary> public string Name {get {return "My Name is innerClass ";}}}} /// <summary> /// internal class /// </summary> public class InnerClass {// <summary> /// class name /// </summary> public string Name {get {return "My Name is InnerClass ";}} /// <summary> /// time /// </summary> public string Date {get {return "2013-1-1 1-1" ;}} public class Test {public void TestMethod () {OuterClass outClass = new OuterClass (); string result = outClass. innerClassName; // 1. internal classes can only pass (external classes. internal class), // 2. in addition, if the internal class is not declared as public, the external program cannot use its OuterClass. innerClass inner = new OuterClass. innerClass (); string name = inner. name; // non-internal class test, both (InnerClass and OutClass. innerClass) not conflicting InnerClass inner2 = new InnerClass (); string name2 = inner2.Name; string date = inner2.Date; // In short, internal classes are mainly used to provide external classes for their own use, // make the internal class more visible and improve encapsulation }}}