91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#顯式實現接口原理是什么

發布時間:2021-07-16 10:15:44 來源:億速云 閱讀:133 作者:chen 欄目:編程語言

這篇文章主要介紹“C#顯式實現接口原理是什么”,在日常操作中,相信很多人在C#顯式實現接口原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#顯式實現接口原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

C#顯式實現接口方法是什么情況呢?當一個類實現了兩個接口(假設Document 類實現了IStorable和ITalk接口),但是兩個接口中有方法名相同時,可以使用下面的語法來顯式地實現一個接口:

void ITalk.Read()

C#顯式實現接口的方法時,不可以加訪問修飾符(access modifier),將隱式地聲明為public。

不能通過類的實例來直接訪問顯式實現的方法。假設該類還實現了IStorable接口中的Read()的方法,當使用下面的語句時:

theDoc.Read( );

將會隱式調用IStorable的Read() 方法。

如果該類僅實現了ITalk接口,而沒有實現IStorable接口,也就不存在方法名沖突的情況,但是卻仍使用顯示的接口聲明,那么當使用 theDoc.Read() 時,將會出現編譯錯誤。

'ExplicitImplementation.Document   ' does not contain a definition for    'Read' F:\MyApp\Test\ExplictImplament.cs  57  11  Test

當想使用 ITalk接口的方法時,需要進行一次類型轉換,使用下面的語法:

ITalk itDoc = theDoc;   itDoc.Read();

C#顯式實現接口之成員隱藏

假設有如下兩個接口:

interface IBase    {      int P { get; set; }   }    interface IDerived : IBase    {      new int P();    }

繼承 IDerived的類至少需要進行一個顯示實現。

class myClass : IDerived    it55.com   {       int IBase.P { get {...} }       public int P( ) {...}   }    class myClass : IDerived     {       public int P { get {...} }       int IDerived.P( ) {...}    }   class myClass : IDerived    {      int IBase.P { get {...} }       int IDerived.P( ) {...}    }

C#顯式實現接口之實現接口的值類型(Struct)

如果使用值類型實現接口,則應通過值類型的對象訪問接口方法,而不要轉換成接口,再用接口進行訪問,此時會多出一個“復制”了的引用對象,而原來的值對象依然存在,兩個對象是各自獨立的。

myStruct theStruct = new myStruct( );    theStruct.Status = 2;    IStorable isTemp = ( IStorable ) theStruct;    it55.com   Console.WriteLine( "isTemp: {0}", isTemp.Status );    isTemp.Status = 4;    Console.WriteLine("theStruct:{0},    isTemp: {1}",theStruct.Status, isTemp.Status );    theStruct.Status = 6;    Console.WriteLine( "theStruct: {0},    isTemp: {1}",theStruct.Status, isTemp.Status );

C#顯式實現接口之程序輸出:

isTemp: 2   theStruct: 2, isTemp: 4   theStruct: 6, isTemp: 4

到此,關于“C#顯式實現接口原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴业县| 江孜县| 石楼县| 宁明县| 普格县| 磐安县| 桃园市| 香格里拉县| 柘荣县| 柳林县| 常山县| 广水市| 油尖旺区| 辽阳县| 稻城县| 姜堰市| 江津市| 孟村| 昭苏县| 盘锦市| 富川| 安泽县| 南平市| 太湖县| 宁乡县| 浏阳市| 阿拉善右旗| 波密县| 鄢陵县| 星子县| 太保市| 阳谷县| 高碑店市| 黔西| 神农架林区| 高安市| 交城县| 吴堡县| 铁岭县| 凤凰县| 元朗区|