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

C# interface學習經驗淺談

開發 后端
C# interface學習是我們學習C#語言的一個重點,那么如何掌握好C# interface的使用規則呢?那么本文就向你介紹一些C# interface學習的經驗和體會。

C# interface是把所需成員組合起來,以封裝一定功能的集合。它好比一個模板,在其中定義了對象必須實現的成員,通過類或結構來實現它。接口不能直接實例化,即ICount ic=new iCount()是錯的。接口不能包含成員的任何代碼,只定義成員本身。接口成員的具體代碼由實現接口的類提供。接口使用interface關鍵字進行聲明。聲明格式如下:

  1. [attributes] [modifiers]   
  2. interface identifier   
  3. [: base-list] {interface-body} {;} 

C# interface成員的默認訪問方式是public,在聲明接口成員時不能出現abstract、public、protected、internal、private、virtual、override或static等關鍵字。接口成員可以是方法、屬性、索引指示器或事件,不能是字段,而且接口的成員名不能相同。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Interface  
  6. {  
  7. interface ICount  
  8. {  
  9. void Count();//接口成員的默認訪問方式是public  
  10. //int number;//接口中不能定義字段成員  
  11. int para { get;set;}  
  12. }  
  13.  
  14. class Double : ICount  
  15. {  
  16. public void Count()  
  17. //實現ICount的Count()方法  
  18. Console.WriteLine("The double para is {0}",2*para);  
  19. }  
  20. int p;  
  21. public int para  
  22. {  
  23. get { return p; }  
  24. set { p = value; }  
  25. }  
  26. }  
  27.  
  28. class Program  
  29. {  
  30. static void Main(string[] args)  
  31. {  
  32. Double d = new Double();  
  33. d.para = 10;//給"屬性"賦值  
  34. d.Count();  
  35.  
  36. ICount ic = (ICount)d;//轉換為接口  
  37. ic.para = 5;  
  38. ic.Count();  
  39. Console.ReadLine();  
  40. }  
  41. }  
  42. }  

C# interface的一點使用總結

1 一個類可以實現一個以上的接口;

2 類必須實現接口中的“所有”屬性和方法;

3 屬性和方法定義所采用的格式必須與接口定義所采用的格式完全相同。方法所采用的參數數目及參數類型必須與接口中的完全相同。方法的名稱也必須相同。

接口之間的繼承:接口的繼承僅僅說明了接口之間的繼承關系,派生的接口繼承了父接口的成員說明,沒有繼承父接口的實現。private和internal類型的接口不允許繼承。如果派生接口中準備重寫父接口的方法,實現方式同類的繼承成員的覆蓋。

如果一個類實現了某個接口,即使父接口沒有在類的基類表中列出,這個類也隱式地繼承了接口的所有父接口。

如果兩個接口A和B含有同名的成員Method,且都由同一個類C實現,則類C必須分別為A和B的Method成員提供單獨的實現,即顯式實現接口成員。可行方案:

(1)直接實現一個接口的成員,顯式實現另一個接口的成員;

(2)顯式實現兩個接口的成員

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Interface  
  6. {  
  7. interface IEnglish  
  8. {  
  9. float Length();  
  10. float Width();  
  11. }  
  12. interface IMetric  
  13. {  
  14. float Length();  
  15. float Width();  
  16. }  
  17. class Class1 : IEnglish, IMetric  
  18. {  
  19. float lengthInches;  
  20. float widthInches;  
  21. public Class1(float length, float width)  
  22. {  
  23. lengthInches = length;  
  24. widthInches = width;  
  25. }  
  26. //顯式實現IEnglish的成員  
  27. float IEnglish.Length()  
  28. {  
  29. return lengthInches;  
  30. }  
  31. float IEnglish.Width()  
  32. {  
  33. return widthInches;  
  34. }  
  35. //顯式實現IMetric的成員  
  36. float IMetric.Length()  
  37. {  
  38. return lengthInches * 2.54f;  
  39. }  
  40. float IMetric.Width()  
  41. {  
  42. return widthInches * 2.54f;  
  43. }  
  44.  
  45. static void Main(string[] args)  
  46. {  
  47. Class1 c1 = new Class1(30.0f,20.0f);  
  48. IEnglish e=(IEnglish)c1;  
  49. IMetric m=(IMetric )c1;  
  50. Console.WriteLine("Length(in):{0}",e.Length());  
  51. Console.WriteLine("Width(in):{0}",e.Width());  
  52. Console.WriteLine("Length(cm):{0}",m.Length());  
  53. Console.WriteLine("Width(cm):{0}",m.Width());  
  54. Console.ReadLine();  
  55. }  
  56. }  
  57.  
  58. }  

執行結果:

C# interface學習的一些體會和具體的實例演示就向你介紹到這里,希望對你了解和學習C# interface有所幫助。

【編輯推薦】

  1. 淺析C#接口特點及實例應用
  2. C# interface實例淺析
  3. C# interface編程應用淺析
  4. C#interface定義及使用淺析
  5. C#顯式實現接口原理淺析
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-08-28 12:25:58

C#靜態方法

2009-08-13 18:13:27

C#學習經驗

2009-08-19 16:36:29

C#管道技術

2009-08-19 10:25:18

C#托管資源

2009-08-31 15:48:02

C# Singleto

2009-08-26 17:24:49

C# Mutex對象

2009-08-20 15:33:03

C#跳躍語句

2009-08-25 16:14:06

C#使用ADOX

2009-08-13 15:03:58

C#結構體變量

2009-08-24 17:06:37

C#字符串

2009-08-28 16:43:57

C#多線程學習

2009-08-31 16:51:11

C# Main()方法

2009-08-28 10:31:47

C#字符ASCII碼

2009-08-27 09:27:49

C#擴展方法

2009-08-12 15:55:12

C#接口定義

2009-08-27 13:45:45

C#別名指示符

2009-08-11 14:20:41

C# .NET學習經驗

2009-09-04 14:30:28

C#讀取BLOB數據

2009-08-27 13:30:11

C# interfac

2009-08-20 18:30:33

C# ReaderWr
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区国产好的精 | 亚洲精品久久久久久一区二区 | 精品久久一区 | 日韩久久精品视频 | 99pao成人国产永久免费视频 | 欧美日韩黄色一级片 | 久久国产美女视频 | 欧美激情va永久在线播放 | 中文字幕日韩在线 | 久久av一区 | 亚洲欧洲激情 | 亚洲成人在线视频播放 | 九九色综合| 欧美视频在线观看 | 中文字幕av亚洲精品一部二部 | 亚洲福利网 | 国产视频综合 | 国产精品v | 日韩1区2区 | 日本福利在线 | 色吧综合网| 在线国产一区二区 | 91精品国产乱码久久久久久 | 日韩av在线一区 | 日日摸夜夜爽人人添av | 日本人做爰大片免费观看一老师 | 国产一区二区影院 | 国产精品观看 | 亚洲欧美一区二区三区情侣bbw | 国产欧美精品一区二区三区 | 中文字幕日韩在线观看 | 91精品久久久久久久久中文字幕 | 国产精久久久久久久妇剪断 | 日韩视频在线一区 | 91精品国产高清一区二区三区 | 成人在线精品视频 | 亚洲成人网在线播放 | 成人免费视频网站在线看 | 亚洲午夜视频在线观看 | 欧美黄色性生活视频 | 国产精品视频久久久 |