成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#基礎知識總結

開發 后端
本文介紹C#基礎知識總結,包括sealed 修飾符表示密封、override 表示重寫、overload 表示重載和實現索引指示器的類可以象數組那樣使用其實例后的對象。

C#基礎知識之sealed 修飾符是干什么的?

sealed 修飾符表示密封,用于類時,表示該類不能再被繼承,不能和 abstract 同時使用,因為這兩個修飾符在含義上互相排斥,用于方法和屬性時,表示該方法或屬性不能再被繼承,必須和 override 關鍵字一起使用,因為使用 sealed 修飾符的方法或屬性肯定是基類中相應的虛成員,通常用于實現第三方類庫時不想被客戶端繼承,或用于沒有必要再繼承的類以防止濫用繼承造成層次結構體系混亂,恰當的利用 sealed 修飾符也可以提高一定的運行效率,因為不用考慮繼承類會重寫該成員

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Example06 {   
  6. class Program {   
  7. class A {   
  8. public virtual void F(){   
  9. Console.WriteLine("A.F");  
  10. }   
  11. public virtual void G(){   
  12. Console.WriteLine("A.G");  
  13. }   
  14. class B : A { 
  15. public sealed override void F(){   
  16. Console.WriteLine("B.F");  
  17. }   
  18. public override void G(){   
  19. Console.WriteLine("B.G");  
  20. }   
  21. class C : B { public override void G(){   
  22. Console.WriteLine("C.G");  
  23. }   
  24. static void Main(string[] args){   
  25. new A()。F();new A()。G();  
  26. new B()。F();new B()。G();  
  27. new C()。F();new C()。G();  
  28.  
  29. Console.ReadLine();  

C#基礎知識之override 和 overload 的區別?

override 表示重寫,用于繼承類對基類中虛成員的實現,overload 表示重載,用于同一個類中同名方法不同參數(包括類型不同或個數不同)的實現

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Example07 {   
  6. class Program {   
  7. class BaseClass {   
  8. public virtual void F(){   
  9. Console.WriteLine("BaseClass.F");  
  10. }   
  11. class DeriveClass : BaseClass {   
  12. public override void F(){   
  13. base.F();  
  14. Console.WriteLine("DeriveClass.F");  
  15. }   
  16. public void Add(int Left, int Right){   
  17. Console.WriteLine("Add for Int: {0}", Left + Right);  
  18. }   
  19. public void Add(double Left, double Right){   
  20. Console.WriteLine("Add for int: {0}", Left + Right);  
  21. }   
  22. static void Main(string[] args){   
  23. DeriveClass tmpObj = new DeriveClass();  
  24. tmpObj.F();  
  25. tmpObj.Add(1, 2);  
  26. tmpObj.Add(1.1, 2.2);  
  27.  
  28. Console.ReadLine();  

C#基礎知識之什么是索引指示器?

實現索引指示器(indexer)的類可以象數組那樣使用其實例后的對象,但與數組不同的是索引指示器的參數類型不僅限于int,簡單來說,其本質就是一個含參數屬性

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Example08 {   
  6. public class Point {   
  7. private double x, y;  
  8. public Point(double X, double Y){   
  9. x = Xy = Y;  
  10. }   
  11. //重寫ToString方法方便輸出  
  12. public override string ToString(){   
  13. return String.Format("X: {0} , Y: {1}", x, y);  
  14. }   
  15. public class Points {   
  16. Point[] points;public Points(Point[] Points){   
  17. points = Points;  
  18. }   
  19. public int PointNumber {   
  20. get {   
  21. return points.Length;  
  22. }   
  23. //實現索引訪問器public Point this[int Index] {   
  24. get { return points[Index];  
  25. }  
  26.  
  27. //感謝watson hua(http://huazhihao.cnblogs.com/)的指點  
  28. //索引指示器的實質是含參屬性,參數并不只限于int class WeatherOfWeek {   
  29. public string this[int Index] {   
  30. get {   
  31. //注意case段使用return直接返回所以不需要break switch (Index){   
  32. case 0:{   
  33. return "Today is cloudy!";  
  34. }   
  35. case 5:{   
  36. return "Today is thundershower!";  
  37. }   
  38. default:{   
  39. return "Today is fine!";  
  40. }   
  41. public string this[string Day] {   
  42. get {   
  43. string TodayWeather = null;  
  44. //switch的標準寫法switch (Day){   
  45. case "Sunday":{   
  46. TodayWeather = "Today is cloudy!";break;  
  47. }   
  48. case "Friday":{   
  49. TodayWeather = "Today is thundershower!";  
  50. break;  
  51. }   
  52. default:{   
  53. TodayWeather = "Today is fine!";break;  
  54. }   
  55. return TodayWeather;  
  56. }   
  57. class Program {   
  58. static void Main(string[] args){   
  59. Point[] tmpPoints = new Point[10];  
  60. for (int i = 0; i < tmpPoints.Length; i++){   
  61. tmpPoints[i] = new Point(i, Math.Sin(i));  
  62. }  
  63.  
  64. Points tmpObj = new Points(tmpPoints);  
  65. for (int i = 0; i < tmpObj.PointNumber; i++){   
  66. Console.WriteLine(tmpObj[i]);}  
  67.  
  68. string[] Week = new string[] {   
  69. "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Staurday"  
  70. }  
  71. WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek();  
  72. for (int i = 0; i < 6; i++){   
  73. Console.WriteLine(tmpWeatherOfWeek[i]);  
  74. }   
  75. foreach (string tmpDay in Week){   
  76. Console.WriteLine(tmpWeatherOfWeek[tmpDay]);  
  77. }  
  78.  
  79. Console.ReadLine();  

【編輯推薦】

  1. C#反射方法學習總結
  2. 淺談C#測量cpu性能
  3. C#遠程計算機的一些理論知識
  4. 淺析C# Static修飾
  5. C#轉換農歷的簡單方法
責任編輯:佚名 來源: IT168
相關推薦

2009-08-27 16:37:06

C#基礎知識

2009-08-19 17:13:15

C# 操作符基礎知識

2009-08-13 16:13:03

C#基礎知識

2009-08-11 15:17:12

C#基礎知識

2009-08-13 15:40:28

C#基礎知識

2010-01-19 14:45:35

C++語言

2009-08-03 13:55:03

C#基礎知識

2009-08-24 17:07:09

C# 泛型

2009-08-21 17:19:36

C#網絡編程入門

2018-10-31 14:44:13

VLANN基礎知識

2009-06-25 15:24:25

Java基礎知識

2009-08-13 18:02:50

C#基礎概念

2009-08-19 16:19:01

C#操作Access數

2010-01-19 10:16:40

C++程序

2009-08-07 13:30:20

C# Excel導入

2009-08-06 17:42:32

C#知識點

2009-08-13 10:52:03

C#基礎概念

2011-07-27 12:19:10

交換機交換技術

2011-07-29 11:32:16

路由PIM

2011-07-27 12:19:14

交換機第四層交換機三層交換機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩2020狼一二三 | 国产蜜臀97一区二区三区 | 中文字幕在线人 | 国产亚洲一区二区精品 | 日本一区精品 | 精品免费| 久久婷婷国产麻豆91 | 欧洲成人免费视频 | 久久综合国产 | 精品欧美乱码久久久久久 | 天堂视频一区 | 国产真实乱对白精彩久久小说 | 在线观看你懂的网站 | 欧美成人a | 久久综合一区 | 日韩成人在线观看 | 久久一区精品 | 久久精品电影 | jizz视频 | 天天干夜夜操 | 日韩美香港a一级毛片免费 国产综合av | 久草在线视频中文 | 成人性视频免费网站 | 国产精品18毛片一区二区 | 日本成人毛片 | 欧美在线视频一区二区 | 2一3sex性hd | 欧美色999 | 这里有精品 | av中文字幕网 | 久久久久久亚洲 | 亚洲区一区二区 | 午夜视频网站 | 日本在线精品视频 | 伊人电影院av| 欧美日韩在线免费 | 久久久久国产精品一区二区 | 欧洲精品一区 | 日韩综合一区 | 欧美电影网 | 国产精品日韩在线观看 |