string Test() {...}
int Test() {...}

然后通過接受方的上下文自動(dòng)選取重載:

int i = Test();
string " /> 久久久久国产精品免费免费,天天操视频 夜夜,www.91成人

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何實(shí)現(xiàn)用返回值重載

今天[ IceSharK - PP.Poet ]很清純地提出了一個(gè)問題,如何能做到函數(shù)返回值重載?簡單的說,就是如何實(shí)現(xiàn)

string Test() {...}
int Test() {...}

然后通過接受方的上下文自動(dòng)選取重載:

int i = Test();
string s = Test();


當(dāng)然VB或者C#都是不允許這樣寫的。不過IL并沒有禁止這一寫法,事實(shí)上在VB或C#中有一種語法結(jié)構(gòu)允許按照返回值選取相應(yīng)的重載,那就是隱式類型轉(zhuǎn)換運(yùn)算符(implicit operator或者Widening Operator CType)。通過輔助類的隱式類型轉(zhuǎn)換運(yùn)算符,我們可以實(shí)現(xiàn)上述要求的語法。

class Foo
{
    string TestString()
    {
        return "I'm a string";
    }

    int TestInt()
    {
        return 100;
    }

    public TestHelper Test()
    {
        return new TestHelper(this);
    }

    public struct TestHelper
    {
        Foo m_host;
        public TestHelper(Foo host)
        {
            m_host = host;
        }

        public static implicit operator int(TestHelper helper)
        {
            return helper.m_host.TestInt();
        }

        public static implicit operator string(TestHelper helper)
        {
            return helper.m_host.TestString();
        }
    }
}
調(diào)用的語法非常之完美:

Foo f = new Foo();
int i = f.Test();
string s = f.Test();

怎么樣,并沒有使用很高深的語法,就實(shí)現(xiàn)了想要的東西。

NET技術(shù)如何實(shí)現(xiàn)用返回值重載,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产美女一区二区在线观看 | 国产成人精选免费视频 | 激情网址在线观看 | 色操网| 禁断の肉体乱爱中文字幕欧 | 色综合色综合色综合色综合 | 成人在线综合网 | 国产小视频在线观看免费 | 黄色网在线看 | 亚洲视频一二区 | 亚洲一区精品视频在线 | 中文字幕一区二区在线播放 | 伊人宗合网 | 日韩国产一区二区 | 国产精品久久久香蕉 | 亚洲视频成人 | 久久国产精品视频一区 | 欧美日韩一区二区三区久久 | 好吊日在线 | 99久久中文字幕伊人 | 91精品国产免费青青碰在线观看 | 久久麻豆亚洲精品 | 日本视频一区二区免费播放 | 中文字幕加勒比 | 欧美一级日韩一级亚洲一级 | 国产精品91在线播放 | 91久久香蕉国产线看 | 五月婷婷综合网 | 国产欧美一区二区三区观看 | 欧美极品美軳人人体 | 加勒比一区二区 | 欧美一级日韩一级亚洲一级 | 日韩欧美一区二区三区中文精品 | 国产精品露脸国语对白手机视频 | 四虎aⅴ| 精品国产亚洲一区二区三区 | 91国视频在线 | 开心激情久久 | 91视频网址入口 | 夜夜操天天干 | 久久成人免费网站 |