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