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

然后通過接受方的上下文自動選取重載:

int i = Test();
string " /> 中文字幕精品AV内射夜夜夜,国产麻豆福利AV在线观看,阿v天堂2017在无码

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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

然后通過接受方的上下文自動選取重載:

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


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

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

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

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

主站蜘蛛池模板: 妖精视频在线观看高清 | 国产美女又黄又爽又色视频网站 | 日本无码毛片一区二区手机看 | 欧美高清另类video | 午夜影院一区二区三区 | xxxx18动漫| 久久re这里视频只有精品首页 | 亚洲高清无在码在线无弹窗 | 亚洲黄色大片 | 亚洲高清一区二区三区电影 | 狂躁美女BBBBBB视频 | 户外露出野战hd | av先锋影音资源男人站 | 中文无码第3页不卡av | 97国产精品人妻无码免费 | se01短视频在线观看 | 超碰在线97久久视频观看 | 俄罗斯6一9泑女网站 | 污污内射久久一区二区欧美日韩 | 91久久偷偷看嫩草影院无费 | 在线黑人抽搐潮喷 | 久久久久久久久人体 | 色综合久久久久久 | 大香伊蕉在人线国产97 | 欧美成人3d动漫专区 | acg全彩无遮挡口工漫画网址 | 国产白丝精品爽爽久久久久久蜜臀 | 中国老女人xxhd69 | 久久精品国产在热亚洲 | 精品一区二区三区AV天堂 | 十分钟免费观看高清视频大全 | 精品在线观看一区 | 伊人影院网 | 无限资源在线看影院免费观看 | 国产一区在线观看免费 | 久久天堂视频 | 精品无码日本蜜桃麻豆 | 古代荡女丫鬟高H辣文纯肉 姑娘视频日本在线播放 | 无人区乱码1区2区3区网站 | 无人在线观看免费高清视频播放 | 狼群影院视频在线观看WWW |