自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#基礎概念總結

開發(fā) 后端
本文介紹C#基礎概念,包括接口的多繼承會帶來哪些問題、抽象類和接口的區(qū)別和別名指示符是什么等方面的介紹。

C#基礎概念之接口的多繼承會帶來哪些問題?

C# 中的接口與類不同,可以使用多繼承,即一個子接口可以有多個父接口。但如果兩個父成員具有同名的成員,就產(chǎn)生了二義性(這也正是 C# 中類取消了多繼承的原因之一),這時在實現(xiàn)時最好使用顯式的聲明

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Example17 {   
  6. class Program {   
  7. //一個完整的接口聲明示例interface IExample {   
  8. //屬性string P { get;set;  
  9. }   
  10. //方法string F(int Value);  
  11. //事件event EventHandler E;  
  12. //索引指示器string this[int Index] {   
  13. get;set;  
  14. }   
  15. interface IA {   
  16. int Count {   
  17. get; set;  
  18. }   
  19. }   
  20. interface IB {   
  21. int Count();  
  22. }   
  23. //IC接口從IA和IB多重繼承interface IC : IA, IB {   
  24. }   
  25. class C : IC {   
  26. private int count = 100;  
  27. //顯式聲明實現(xiàn)IA接口中的Count屬性int IA.Count {   
  28. get {  
  29. return 100;   
  30. }   
  31. set { count = value; }   
  32. }   
  33. //顯式聲明實現(xiàn)IB接口中的Count方法int IB.Count(){   
  34. return count * count;} static void Main(string[] args){   
  35. tmpObj = new C();  
  36. //調(diào)用時也要顯式轉換Console.WriteLine("Count property: {0}",((IA)tmpObj)。Count);  
  37. Console.WriteLine("Count function: {0}",((IB)tmpObj)。Count());  
  38.  
  39. Console.ReadLine();  

C#基礎概念之抽象類和接口的區(qū)別?

抽象類(abstract class)可以包含功能定義和實現(xiàn),接口(interface)只能包含功能定義,抽象類是從一系列相關對象中抽象出來的概念, 因此反映的是事物的內(nèi)部共性;接口是為了滿足外部調(diào)用而定義的一個功能約定, 因此反映的是事物的外部特性,分析對象,提煉內(nèi)部共性形成抽象類,用以表示對象本質,即“是什么”,為外部提供調(diào)用或功能需要擴充時優(yōu)先使用接口

C#基礎概念之別名指示符是什么?

通過別名指示符我們可以為某個類型起一個別名,主要用于解決兩個命名空間內(nèi)有同名類型的沖突或避免使用冗余的命名空間,別名指示符只在一個單元文件內(nèi)起作用

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib01 {   
  6. class Class1 {   
  7. public override string ToString(){   
  8. return "com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib01's Class1";  
  9. }   
  10. Class2.cs  
  11.  
  12. using System;  
  13. using System.Collections.Generic;  
  14. using System.Text;  
  15.  
  16. namespace com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib02 {   
  17. class Class1 {   
  18. public override string ToString(){   
  19. return "com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib02's Class1";  
  20. }主單元(Program.cs):  
  21.  
  22. using System;  
  23. using System.Collections.Generic;  
  24. using System.Text;  
  25.  
  26. //使用別名指示符解決同名類型的沖突  
  27. using Lib01Class1 = com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib01.Class1;  
  28. using Lib02Class2 = com.nblogs.reonlyrun.CSharp26QExample.Example19.Lib02.Class1;  
  29.  
  30. namespace Example19 {   
  31. class Program { static void Main(string[] args){   
  32. Lib01Class1 tmpObj1 = new Lib01Class1();  
  33. Lib02Class2 tmpObj2 = new Lib02Class2();  
  34.  
  35. Console.WriteLine(tmpObj1);  
  36. Console.WriteLine(tmpObj2);  
  37. Console.ReadLine();  

【編輯推薦】

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

2009-08-13 10:52:03

C#基礎概念

2009-09-17 17:44:51

C#動態(tài)數(shù)組

2011-04-25 09:22:44

C#事件

2011-04-22 09:14:26

C#委托

2011-04-26 08:56:31

C#

2011-06-08 14:22:51

延遲加載

2009-08-27 16:37:06

C#基礎知識

2009-08-13 11:10:32

C#基礎概念

2009-08-13 12:50:45

C#基礎知識

2009-08-27 10:14:04

LINQ基礎概念

2009-08-19 17:13:15

C# 操作符基礎知識

2009-09-02 10:58:02

C#動態(tài)數(shù)組

2009-09-14 13:44:14

Lambda ExprC# Lambda

2009-08-25 17:49:07

C#入門

2009-08-11 15:44:05

C#基本技巧

2009-08-13 18:21:52

C#學習筆記

2009-08-17 17:04:29

C#轉義字符

2024-06-11 00:00:30

C#編程線程

2009-08-27 16:54:59

C#開發(fā)技巧

2024-12-24 07:38:44

C#串口通信
點贊
收藏

51CTO技術棧公眾號