C#类的嵌套


嵌套类(Nested Class)是在类中定义的类。以下把拥有内嵌类的类称为外部类。
嵌套类分为静态嵌套类和非静态嵌套类,其中非静态嵌套类也被称为内部类。嵌套类在
UML中是composite的另外一种代码表示形式,表示耦合度更高,并且与外部类更加紧密。
一般类的访问修饰符可以定义为默认的internal或者public,而内嵌类就有比较多的选择,
可以是为protected、internal、public以及默认的private。
 
内嵌类与外部类的访问限制
嵌套类可以访问外部类的方法、属性、字段而不管访问修饰符的限制。如:

 1 public class A {  
 2     private static int _AInt; 
 3     private int _instanceInt;  
 4     private static void AMethod() {  
 5         Console.WriteLine(_AInt); 
 6     }  
 7     public void SayIt() {  
 8         NestedA.Method(this); 
 9     }        
10     private class NestedA{  
11         public static void Method(A a) {  
12         //静态成员
13         _AInt = 100; 
14         AMethod();  
15         //实例成员
16         a._instanceInt = 10;      
17         a.SayIt(); 
18         } 
19     } 
20 }  


但是外部类只能够访问修饰符为public、internal

嵌套类的字段、方法、属性。示例如下:

 1 public class A {  
 2     public static void AMethod() {  
 3          //成功
 4         NestedA.StaticMethod(); 
 5         //编译报错
 6         NestedA._Int = 100; 
 7           NestedA ins=new NestedA(); 
 8         //成功
 9         ins.Method(); 
10         //编译报错     
11          ins._instanceInt = 100; 
12     }  
13     private class NestedA {  
14         private static int _Int; 
15         private int _instanceInt;  
16         public static void StaticMethod() { } 
17         public void Method(){} 
18     }  
19 }  


以上均摘自百度文库,文档原文连接是:http://wenku.baidu.com/view/2ad68f6b561252d380eb6e45.html

太长了我太懒了,所以这里就没有后面的内容了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM