91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何使用內部類

發布時間:2021-07-08 15:37:46 來源:億速云 閱讀:286 作者:Leah 欄目:編程語言

C#中如何使用內部類,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.內部類的定義:

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

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

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

(3)匿名內部類。

2.外部類訪問內部類

外部類訪問內部類 例子   namespace GameStatistical.Test.InnerClass   {       public class Person       {           public class Student           {               public static int age;               internal static int height;               private static string sex;                public virtual void Show()              {                   Console.WriteLine("年齡:"+age);                   Console.WriteLine("身高:"+height);               }                  internal void Display()              {                   Console.WriteLine("internal");                  Console.WriteLine("年齡:" + age);                   Console.WriteLine("身高:" + height);               }           }                 public void Show()           {               Student.age = 21;               Student.height = 75;               Student student = new Student();               student.Show();           }       }   }

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

3.內部類訪問外部類

內部類訪問外部類 例子   namespace GameStatistical.Test.InnerClass   {       public class Person1       {           private string name;              public string Name           {               get { return name; }               set { name = value; }           }           private string sex;              public string Sex           {               get { return sex; }               set { sex = value; }           }              public void Show1()           {               Console.WriteLine(this.name + "==>" + this.sex);           }              private static void Show2()           {               Console.WriteLine("===================>");           }             internal void Show3()           {               Console.WriteLine(this.name + "==>" + this.sex);           }                    public class Student           {               public void SetPer(string name, string sex)               {                   Person1 p = new Person1();                   p.name = name;                   p.sex = sex;                      p.Show3();                   p.Show1();               }              }       }   }

這段代碼同樣定義了一個外部類Person1 和一個內部類Student,內部類中的SetPer()調用了外部類中的方法,寫這段代碼我們可以發現 嵌套類可以訪問外部類的方法、屬性、字段而不受訪問修飾符的限制

4.內部類的繼承

內部類繼承例子1   namespace GameStatistical.Test.InnerClass   {       public class Person       {           public class Student           {               public static int age;               internal static int height;               private static string sex;                  public virtual void Show()               {                   Console.WriteLine("年齡:"+age);                   Console.WriteLine("身高:"+height);               }                  internal void Display()               {                   Console.WriteLine("internal");                   Console.WriteLine("年齡:" + age);                   Console.WriteLine("身高:" + height);               }           }                 public void Show()           {               Student.age = 21;               Student.height = 75;               Student student = new Student();               student.Show();               student.Display();           }       }   }

內部類繼承,上面的內部類定義了父類,其中public virtual void Show() 使用virtual 修飾,可以用于子類重寫這個方法,看內部類繼承子類是否能夠重寫這個方法。

內部類繼承例子2   namespace GameStatistical.Test.InnerClass   {       public class SubPerson:Person       {           public class SubStudent : Student           {               public override void Show()               {                   base.Show();               }           }       }   }

上面的代碼重寫了Show() 這個方法,說明內部類的繼承可以通過

5.反射內部類

對于這段代碼,是從其他網站看到的,反射內部類我們不能直接通過 "." 操作符直接來操作,而是通過 "+" 操作符。前面也提到過內部類也是一種有效的管理命名空間的方法,這里也是普通類和內部類的一點區別:

反射內部類

Activator.CreateInstance("GameStatistical.Test.InnerClass", "GameStatistical.Test.InnerClass.ReflectionPerson+Student");

反射普通類

Activator.CreateInstance("GameStatistical.Test.InnerClass", "GameStatistical.Test.InnerClass.ReflectionPerson.Student");

看完上述內容,你們掌握C#中如何使用內部類的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福州市| 六枝特区| 高唐县| 黔江区| 定陶县| 滁州市| 晋城| 南宁市| 新干县| 鄯善县| 刚察县| 贵港市| 湾仔区| 瑞昌市| 万山特区| 九台市| 无锡市| 义马市| 富蕴县| 七台河市| 平凉市| 正宁县| 崇礼县| 长海县| 齐齐哈尔市| 文山县| 久治县| 平昌县| 阳春市| 铜陵市| 兴安盟| 庄浪县| 营山县| 商河县| 柏乡县| 四川省| 肇东市| 合阳县| 乐清市| 昌都县| 锦州市|