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

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

int i = Test();
string " /> 天天拍拍国产在线视频,在线免费观看国产,男女疯狂一边摸一边做羞羞视频

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

如何實現用返回值重載

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

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

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

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


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

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();
        }
    }
}
調用的語法非常之完美:

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

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

NET技術如何實現用返回值重載,轉載需保留來源!

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

主站蜘蛛池模板: 漂亮的保姆5电影免费观看完整版中文 | 日日碰狠狠躁久久躁77777 | 日本欧美久久久久免费播放网 | 好硬好湿好爽再深一点视频 | 拔擦拔擦8X永久华人免费播放器 | 俄罗斯乌克兰战争原因 | 在线伦理电影网 | 榴莲推广APP网站入口下载安装 | 女人会操出水图 | 视频在线观看高清免费看 | 亚洲高清无在码在线无弹窗 | 在线广播收听 | 内射白浆一区二区在线观看 | 国产午夜精品久久久久婷婷 | 榴莲推广APP网站入口官网 | 精品视频网站 | 99pao成人国产永久免费视频 | 蜜臀亚洲AV永久无码精品老司机 | 成年色黄APP下载 | fryee性欧美18 19 | 337p啪啪人体大胆 | 性生交片免费无码看人 | 97se se| 精品国产乱码久久久人妻 | 亚洲精品高清中文字幕完整版 | 国产成人精品综合久久久 | 8090碰成年女人免费碰碰尤物 | vivoe另类| 久久精品亚洲 | 草莓西瓜樱桃香蕉直播视频 | 含羞草完整视频在线播放免费 | 国产乱码卡二卡三卡4W | 性一交一乱一色一视频 | 福利一区福利二区 | 久久精品影视 | 无码人妻丰满熟妇区五十路久久 | 国产Av影片麻豆精品传媒 | 野花日本大全免费高清完整版 | 青草影院内射中出高潮-百度 | 双性将军粗壮H灌满怀孕 | 99久久精品费精品国产 |