青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

開發是一門技術,編程是一種藝術

游戲老手,編程新手
隨筆 - 11, 文章 - 0, 評論 - 58, 引用 - 0
數據加載中……

C#學習筆記:接口

假如在實現多個接口時,接口中包含有相同和函數,必須要顯式地實現各個函數(有一個可以隱式實現),而且在以后調用的時候也必須通過接口調用。說不太清,還是看代碼吧:

假如有兩個接口IReadalbe和IStorable,都含有Read();

interface IStorable
    {
        void Read( );
    }

interface IReadable
    {
        int Read();
    }

然后,我們有個類使用這兩個接口:

class Test : IStorable, IReadable
{
    public int Read()
    {
        Console.WriteLine("Which one?");
        return 1;
    }

    //void IStorable.Read()
    //{
    //    Console.WriteLine("IStorable?");
    //}

}

假如不取消注釋,那么代碼無法通過編譯(沒有實現全部接口)。取消注釋后,int Read()表示為實現IReadable接口。寫代碼測試:

Test t = new Test();
t.Read(); //輸出為 Which one?
IStorable a = t;
a.Read(); //輸出為 IStorable
IReadable b = t;
b.Read(); //輸出為 Which one?

看起來似乎沒有什么問題,假如我們再顯示地實現IReadable的Read(),即在Test類里面再添加如下代碼:

int IReadable.Read()
{
    Console.WriteLine("IReadable");
    return 1;
}

再測試:

Test t = new Test();
t.Read(); //輸出為 Which one?
IStorable a = t;
a.Read(); //輸出為 IStorable
IReadable b = t;
b.Read(); //輸出為 IReadable

這里看起來我們的確能夠通過接口調用我們實現的函數,但是此時的t.Read()就不知道該算什么了。它似乎不是任何一個接口的實現,而且我們可以隨意更改它的返回類型,看起來似乎它又成了一個獨立函數?在第一次測試中,IReadable認為它是其實現并調用,可是在第二次測試中,IReadable發現了自己的專門實現后就不在調用它了。結果這個Read()就成了不是任何接口的實現,但它卻和接口提供的函數同名! 或者說Test類的Read()實現了3個接口?

如果兩個接口都是提供void Read(),那么我們只要實現在Test類里實現void Read()就可以算是同時實現了兩個接口,不過我們仍然可以顯式地為兩個接口提供不同的實現函數,那樣的話,我們仍然可以再存在一個與接口無關的同名函數。

 此外,對于IReadable.Read()和IStorable.Read()都不能用pubic這類modifiers來修飾,否則報錯。

雖然看起來是很奇怪的一種實現,而且也找不到什么實際的意義,不過既然發現了這個現象,先在此做個記錄,說不定以后有新發現。

也希望有實際經驗的人說說實際項目中會不會有這種情況。

posted on 2008-06-12 21:59 54sun 閱讀(2157) 評論(3)  編輯 收藏 引用 所屬分類: C#

評論

# re: C#學習筆記:接口  回復  更多評論   

一開始寫了IStorable.Read之后,Read就變成了IReadable得了。這個方法似乎是讓你控制直接在類調用Read的時候究竟是調用哪個Read。沒有考證。
2008-06-13 02:03 | 陳梓瀚(vczh)

# re: C#學習筆記:接口  回復  更多評論   

不好意思,我調試的時候似乎和你的不一樣

interface IStorable
{
void Read( );
}

interface IReadable
{
int Read();
}

然后,我們有個類使用這兩個接口:

class Test : IStorable, IReadable
{
public int Read()
{
Console.WriteLine("Which one?");
return 1;
}

void IStorable.Read()
{
Console.WriteLine("IStorable?");
}

}


使用此段代碼運行后
Test t = new Test();
t.Read();
IStorable a = t;
a.Read(); //輸出為 Which one?
這個是我調試的結果,請指教下。。。。
2008-07-24 06:24 | question

# re: C#學習筆記:接口  回復  更多評論   

回ls:
我重新測試了一遍,測試結果是:
Which one?
Storable?
Which one?

你是不是看錯了?發上源碼來看看。
2008-08-01 14:29 | 54sun
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            9色国产精品| 久久夜色精品国产噜噜av| 亚洲高清久久网| 欧美久久久久久久久| 最新精品在线| 99热这里只有精品8| 国产欧美1区2区3区| 国产九九精品| 亚洲视频一区在线| 亚洲毛片在线免费观看| 999亚洲国产精| 极品尤物一区二区三区| 亚洲国产日本| 国产精品一区二区久久久| 久久人91精品久久久久久不卡| 蜜桃av综合| 香蕉久久夜色精品国产| 欧美在线观看视频一区二区三区 | 欧美va日韩va| 欧美一区二区三区在线观看 | 欧美亚洲日本国产| 亚洲国产中文字幕在线观看| 亚洲一区二区三区精品在线观看| 国产在线一区二区三区四区| 亚洲精品1区2区| 国产欧美日韩精品在线| 午夜天堂精品久久久久| 亚洲精品一区二区在线观看| 欧美一区二区三区在| 亚洲免费观看在线观看| 久久久久免费观看| 久久视频在线免费观看| 国产农村妇女毛片精品久久麻豆 | 亚洲女人天堂av| 一本色道久久88精品综合| 欧美国产日本高清在线| 美女视频黄 久久| 亚洲第一二三四五区| 麻豆精品精华液| 一卡二卡3卡四卡高清精品视频| 亚洲一级在线观看| 欧美精品国产| 亚洲欧美日韩专区| 久久综合中文色婷婷| 激情文学综合丁香| 欧美精品成人| 亚洲午夜在线观看视频在线| 欧美亚洲免费电影| 狠狠爱综合网| 国产精品扒开腿做爽爽爽视频| 亚洲欧美久久久| 亚洲日本一区二区| 蜜臀久久99精品久久久画质超高清| 亚洲精品免费网站| 国产亚洲日本欧美韩国| 国产精品jvid在线观看蜜臀| 久久国产精彩视频| 亚洲精品日韩在线| 欧美国产一区二区| 久久一二三四| 久久久青草婷婷精品综合日韩 | 狂野欧美激情性xxxx欧美| 国产精品永久在线| 欧美1区2区3区| 欧美一区二区三区婷婷月色| 亚洲精品一区在线观看| 老牛影视一区二区三区| 一区二区欧美在线| 欧美中文字幕在线视频| 中国成人黄色视屏| 亚洲全部视频| 9久草视频在线视频精品| a91a精品视频在线观看| 亚洲国产黄色片| 欧美高清视频一二三区| 狂野欧美激情性xxxx| 久久综合网络一区二区| 久久久久国产成人精品亚洲午夜| 亚洲丝袜av一区| 亚洲午夜视频在线| 久久久久久69| 欧美激情一二三区| 一区二区日本视频| 亚洲欧美视频在线| 欧美成人精品一区二区三区| 久久精品日产第一区二区三区| 久久精品国产久精国产爱| 乱中年女人伦av一区二区| 欧美日韩的一区二区| 国产精品高潮呻吟视频| 亚洲第一在线| 欧美一区二区高清在线观看| 久久性色av| 亚洲网友自拍| 欧美日韩精品在线播放| 国产日韩欧美另类| 亚洲看片免费| 欧美成人精品| 欧美在线一二三四区| 欧美另类极品videosbest最新版本| 国产精品美女久久久久aⅴ国产馆| 精品999成人| 羞羞漫画18久久大片| 亚洲欧洲一区二区三区| 久久深夜福利免费观看| 国产主播精品| 久久久精品国产一区二区三区| 亚洲精品小视频在线观看| 亚洲美女视频网| 久久久综合激的五月天| 亚洲一二三区视频在线观看| 国产女人精品视频| 欧美激情偷拍| 亚洲国产欧美在线| 亚洲综合另类| 欧美一级专区| 国产视频一区在线观看| 欧美一区在线直播| 欧美成人嫩草网站| 欧美日韩国产综合视频在线观看中文| 蜜桃视频一区| 亚洲精品国产无天堂网2021| 欧美大片一区| 在线视频亚洲一区| 亚洲专区一区| 国产精品免费看| 久久综合网络一区二区| 亚洲看片网站| 久久久久久日产精品| 国产精品久久久久久久午夜| 久久久精品国产免费观看同学 | 欧美中文字幕视频| 亚洲第一在线综合在线| 亚洲午夜在线观看| 激情成人av| 国产精品国产三级国产专播精品人| 亚洲精品日韩在线观看| 巨胸喷奶水www久久久免费动漫| 久久久久在线| 久久一区视频| 欧美大片在线看| 欧美大胆人体视频| 亚洲电影第1页| 亚洲激情综合| 亚洲美女啪啪| 亚洲视频一二三| 亚洲一区二区三区精品在线观看| 在线中文字幕不卡| 亚洲婷婷在线| 性做久久久久久免费观看欧美| 午夜精品久久久久久久白皮肤| 亚洲欧美国产精品桃花| 欧美一区中文字幕| 麻豆乱码国产一区二区三区| 欧美成人性生活| 欧美三区在线| 国产一区二区久久久| 亚洲国产精品悠悠久久琪琪| 亚洲精品视频在线观看网站| 亚洲一区二区三区四区五区黄| 午夜精品美女自拍福到在线| 久久狠狠一本精品综合网| 米奇777超碰欧美日韩亚洲| 亚洲国产导航| 亚洲一级黄色片| 久久蜜臀精品av| 欧美另类一区二区三区| 国产精品影片在线观看| 黄色欧美成人| 亚洲一区日韩在线| 久久在线视频| 9人人澡人人爽人人精品| 亚洲欧美激情一区二区| 免费欧美日韩国产三级电影| 国产精品国产三级国产专播品爱网| 国产欧美日韩视频在线观看| 亚洲电影成人| 欧美亚洲在线播放| 在线亚洲+欧美+日本专区| 午夜精品999| 欧美日韩国产不卡| 国产日韩欧美三区| 在线综合亚洲| 免费成人黄色| 亚洲欧美一级二级三级| 欧美韩日一区| 在线观看一区欧美| 午夜在线电影亚洲一区| 亚洲成在线观看| 性伦欧美刺激片在线观看| 欧美日韩蜜桃| 亚洲国产电影| 久久久久久久综合| 亚洲午夜av在线| 欧美女主播在线| 亚洲国产va精品久久久不卡综合| 午夜一区二区三区在线观看| 最新日韩精品| 欧美大片一区| 亚洲黄色三级|