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

淺談C#如何實現多繼承

開發 后端
C#如何實現多繼承,關鍵在于接口可以寫方法的實現。多繼承即一個子類可以有多個父類,它繼承了多個父類的特性。

C # 如何實現多繼承,關鍵在于接口可以寫方法的實現

  1. namespace Extensions  
  2. {  
  3.   using System;  
  4.   using ExtensionMethodsDemo1;  
  5.  
  6.  
  7.      public static class Extension  
  8.      {  
  9. //擴展接口  
  10.         public static void MethodB(this IMyInterface myInterface)   
  11.         {  
  12.             Console.WriteLine("Extension.MethodB(this IMyInterface myInterface)");  
  13.         }  
  14.     }  
  15. }  
  16. namespace ExtensionMethodsDemo1  
  17. {  
  18.     using System;  
  19.     using Extensions;  
  20.  
  21.     public interface IMyInterface  
  22.     {  
  23.         void MethodB();  
  24.     }  
  25.  
  26.     class A : IMyInterface   
  27.     {  
  28.         public void MethodB(){Console.WriteLine("A.MethodB()");}  
  29.     }   
  30.  
  31.     class B : IMyInterface  
  32.     {  
  33.         public void MethodB() { Console.WriteLine("B.MethodB()"); }  
  34.  
  35.     }  
  36.  
  37.     class C : IMyInterface  
  38.     {  
  39.         public void MethodB() { Console.WriteLine("C.MethodB()"); }  
  40.  
  41.     }  
  42.  
  43.     class ExtMethodDemo  
  44.     {  
  45.         static void Main(string[] args)  
  46.         {  
  47.             A a = new A();  
  48.             B b = new B();  
  49.             C c = new C();  
  50.  
  51.             a.MethodB()  
  52.             b.MethodB()  
  53.             c.MethodB()  
  54.  
  55.  
  56.  
  57.         }  
  58.      }  

故事篇:

找到這個辦法的故事,,,,一日,閑來無事,來玩玩sp1新特性,entity framework.

生成實體類啦.

不過,這些實體類屬于充血模型.

習慣了petshop式的貧血模型的我,一下子想到,,,老子提取接口嘛,

然后,貧血模型誕生了.

作為兩個模型的媽, IModelMother...是不是應該為兒子們做一些貢獻呢.

想到了,兩個實體類相互復制屬性的方法 .... 

  1. Code  
  2.        public void CopyFrom(IModelMother model)  
  3.  
  4.        {  
  5.            this.P1 = model.P1;  
  6.            this.P2 = model.P2;  
  7.            this.P3 = model.P3;  
  8.            this.P4 = model.P4;  
  9.  
  10.  
  11.        } 

后來發現,,,這個方法,在兩個實體類中都是相同的實現.

可惜他們媽媽是接口......哎.....

于是給scottgu發了封郵件,大致上說:

老古呀,,  .net怎么不能多重繼承呢,這樣,一個具有相同實現的方法,放哪呀?????

老古回信到,,,,oh,親愛的,我們真是英雄所見略同,

 區別是,我TMD可以驅使一群高人為我解決這個問題.

為了解決這個問題,引入了擴展方法,這樣你就可以通過繼承接口來實現多繼承啦.于是乎,產生了本文最上面的代碼段

補充:為什么他們媽媽不是類???因為EF的實體類有個爹(System.Data.Objects.DataClasses.EntityObject)

【編輯推薦】

  1. C#中實現多繼承的方式:混合+接口
  2. 多繼承詳解
  3. 淺談C#基元類型及常見問題解答
  4. 利用C#指針進行圖像操作
  5. C# 2010協變和逆變的新特性
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-05-13 11:50:17

C#多繼承接口

2009-09-04 17:34:11

C#CC++

2009-08-17 17:16:19

C#實現在線升級

2009-09-01 18:29:10

C#繼承C#多態

2009-08-13 18:15:06

C#繼承構造函數

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#結構

2009-08-19 15:08:30

C#泛型

2009-09-07 05:24:22

C#窗體繼承

2009-08-07 11:26:53

C#數組結構

2009-08-12 11:24:25

C# String對象

2009-08-31 09:37:09

C# Employee

2009-08-19 17:12:18

C# Connecti

2009-08-26 13:15:38

C#選擇控制

2009-08-26 15:46:01

C#匿名類型

2009-08-25 16:16:43

C# oledbcon

2009-08-14 17:58:05

C#接口方法

2009-08-20 10:24:52

C#開發WinForm

2009-09-02 15:41:21

C# HTTPWebR

2009-08-06 15:30:23

C#類型系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品高潮呻吟 | 国产成人久久精品一区二区三区 | 国精久久| 亚州av| 激情黄色在线观看 | 亚洲精品美女 | 日韩国产高清在线观看 | 国产精品久久久久无码av | 亚洲一区二区av | 国内毛片毛片毛片毛片 | 国产一区2区| 91精品国产91久久久久久吃药 | 人人干97| 亚洲美女在线一区 | 久久精品国产清自在天天线 | 色男人的天堂 | 久久精品日产第一区二区三区 | 日韩精品久久一区二区三区 | 亚洲一区二区三区在线免费观看 | 成人av高清在线观看 | 亚洲一区二区三区欧美 | 日韩精品无码一区二区三区 | 国产精品2区 | 永久av| 日本小电影在线 | 午夜精品一区二区三区在线视频 | 亚洲日本免费 | 欧美精品久久久 | 97人澡人人添人人爽欧美 | 欧美黄色一区 | 久久亚洲综合 | 成人免费观看视频 | 日韩在线视频网址 | 久久91| 亚洲高清免费视频 | 特级黄色毛片 | 97视频在线观看免费 | av片毛片| 欧美激情五月 | 国产精彩视频一区 | 久久精品国产99国产精品 |