程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 解讀C#中內部類的語法結構(1)

解讀C#中內部類的語法結構(1)

編輯:關於C語言

最近在看Java一方面的書籍,看到一個很奇怪的問題,Java類中還可以再定義一個類,這種結構非常特殊!後來才發現,原來C#中也有內部類,之前都一直沒有注意過這個語法結構!

51CTO推薦閱讀:C#內部類簡單分析

使用內部類有這樣幾個好處:

(1)抽象外部類的某一狀態下的行為,隱藏實現,通過修改該內的訪問修飾符,可以設置僅有外部類可以訪問該類。

(2)擴展了命名空間,可以將外部類的類名作為內部類的一個命名空間(這裡只是相當於,但不是真正的命名空間)。

(3)內部類可以當作外部類的一個擴展,可以活的更好的封裝。

上面的這些特點胡亂的總結了一下,可能有些詞不達意,下面有些具體例子:

1.內部類的定義:

嵌套類:在一個類中定義另外一個類,主要分為靜態嵌套類和非靜態嵌套類(又稱之為"內部類")。內部類的定義結構:

(1)在一個類中直接定義類。

(2)在一個方法中定義類。

(3)匿名內部類。

2.外部類訪問內部類

  1. 外部類訪問內部類 例子  
  2.  namespace GameStatistical.Test.InnerClass  
  3.  {  
  4.      public class Person  
  5.      {  
  6.          public class Student  
  7.          {  
  8.              public static int age;  
  9.              internal static int height;  
  10.              private static string sex;  
  11.  
  12.              public virtual void Show()  
  13.             {  
  14.                  Console.WriteLine("年齡:"+age);  
  15.                  Console.WriteLine("身高:"+height);  
  16.              }  
  17.    
  18.              internal void Display()  
  19.             {  
  20.                  Console.WriteLine("internal");  
  21.                 Console.WriteLine("年齡:" + age);  
  22.                  Console.WriteLine("身高:" + height);  
  23.              }  
  24.          }  
  25.    
  26.    
  27.          public void Show()  
  28.          {  
  29.              Student.age = 21;  
  30.              Student.height = 75;  
  31.              Student student = new Student();  
  32.              student.Show();  
  33.          }  
  34.      }  
  35.  } 

該段代碼定義了一個外部類Person 和一個內部類Student, 其中內部類Student中使用了各種修飾符修飾的變量和方法,從上面的例子可以看出外部類只能夠訪問嵌套類中修飾符為public、internal的字段、方法、屬性。調用外部類的 Show()方法運行得到如下結果:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved