新聞中心
本篇文章為大家展示了C#中怎么實(shí)現(xiàn)多繼承,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)的開(kāi)發(fā),更需要了解用戶(hù),從用戶(hù)角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶(hù)體驗(yàn)。創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見(jiàn)的多,溝通容易、能幫助客戶(hù)提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷(xiāo)的概念。選擇創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪(fǎng)用戶(hù)感受到浩方產(chǎn)品的價(jià)值服務(wù)。
C # 如何實(shí)現(xiàn)多繼承,關(guān)鍵在于接口可以寫(xiě)方法的實(shí)現(xiàn)
namespace Extensions { using System; using ExtensionMethodsDemo1; public static class Extension { //擴(kuò)展接口 public static void MethodB(this IMyInterface myInterface) { Console.WriteLine("Extension.MethodB(this IMyInterface myInterface)"); } } } namespace ExtensionMethodsDemo1 { using System; using Extensions; public interface IMyInterface { void MethodB(); } class A : IMyInterface { public void MethodB(){Console.WriteLine("A.MethodB()");} } class B : IMyInterface { public void MethodB() { Console.WriteLine("B.MethodB()"); } } class C : IMyInterface { public void MethodB() { Console.WriteLine("C.MethodB()"); } } class ExtMethodDemo { static void Main(string[] args) { A a = new A(); B b = new B(); C c = new C(); a.MethodB() b.MethodB() c.MethodB() } } }
故事篇:
找到這個(gè)辦法的故事,,,,一日,閑來(lái)無(wú)事,來(lái)玩玩sp1新特性,entity framework.
生成實(shí)體類(lèi)啦.
不過(guò),這些實(shí)體類(lèi)屬于充血模型.
習(xí)慣了petshop式的貧血模型的我,一下子想到,,,老子提取接口嘛,
然后,貧血模型誕生了.
作為兩個(gè)模型的媽, IModelMother...是不是應(yīng)該為兒子們做一些貢獻(xiàn)呢.
想到了,兩個(gè)實(shí)體類(lèi)相互復(fù)制屬性的方法 ....
Code public void CopyFrom(IModelMother model) { this.P1 = model.P1; this.P2 = model.P2; this.P3 = model.P3; this.P4 = model.P4; }
后來(lái)發(fā)現(xiàn),,,這個(gè)方法,在兩個(gè)實(shí)體類(lèi)中都是相同的實(shí)現(xiàn).
可惜他們媽媽是接口......哎.....
于是給scottgu發(fā)了封郵件,大致上說(shuō):
老古呀,, .net怎么不能多重繼承呢,這樣,一個(gè)具有相同實(shí)現(xiàn)的方法,放哪呀?????
老古回信到,,,,oh,親愛(ài)的,我們真是英雄所見(jiàn)略同,
區(qū)別是,我TMD可以驅(qū)使一群高人為我解決這個(gè)問(wèn)題.
為了解決這個(gè)問(wèn)題,引入了擴(kuò)展方法,這樣你就可以通過(guò)繼承接口來(lái)實(shí)現(xiàn)多繼承啦.于是乎,產(chǎn)生了本文最上面的代碼段
補(bǔ)充:為什么他們媽媽不是類(lèi)???因?yàn)镋F的實(shí)體類(lèi)有個(gè)爹(System.Data.Objects.DataClasses.EntityObject)
上述內(nèi)容就是C#中怎么實(shí)現(xiàn)多繼承,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱(chēng):C#中怎么實(shí)現(xiàn)多繼承
鏈接地址:http://fisionsoft.com.cn/article/pojhhj.html