• <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>
            隨筆 - 55  文章 - 15  trackbacks - 0
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                  今天想把BlogReader的C++版本寫(xiě)出來(lái),當(dāng)然是照著MSDN上微軟的官方文檔來(lái)做了,中間邂逅了下面一段代碼,查了一下,是關(guān)于boxing的,現(xiàn)在介紹一下吧
            Object^ FeedData::TitleGetter(Object^ instance)
            {
                auto object = (FeedData^)instance;
                return PropertyValue::CreateString(object->Title);
            }
            先解釋一下,最后一行object->Title是一個(gè)String^類型的值。TitleGetter函數(shù)返回值是一個(gè)Object^類型,參數(shù)也是一個(gè)Object^類型,所以PropertyValue::CreateString(String^ value)就應(yīng)該返回一個(gè)Object^類型值,事實(shí)當(dāng)然是如此,但是我們追本逐源地來(lái)看一下PropertyValue是個(gè)什么東西吧。
                  
            public ref class PropertyValue sealed : Object,
                IPropertyValue
             MSDN的解釋是:Represents a value in a property store 
             字面意思理解就是把一個(gè)值放進(jìn)一個(gè)屬性堆里面,也就是boxing了。我的理解是封裝,跟encapsulate差不多的意思,把一個(gè)內(nèi)建類型打包成一個(gè)Object^類,也就是相當(dāng)于原來(lái)C++中把內(nèi)建的int型轉(zhuǎn)為INT類,只不過(guò)這里把int,double,boolean都轉(zhuǎn)成Object^類型了。
                  PropertyValue類就相當(dāng)于一個(gè)打包公司,有一天你高高興興地想把一個(gè)boolean傳給你的朋友func1(Object^ value),你到了這家公司,于是開(kāi)始下面的對(duì)話:
                  你:老板,我要給我的朋友func1寄一個(gè)boolean
               老板:客官稍等,我們查到您朋友想要個(gè)Object^
                  你:他就像要個(gè)boolean,我知道的,他 不過(guò)想用Object^掩人耳目罷了,我到你這來(lái),就知道你這里做打包的生意,快些給我打包
               老板:客觀看來(lái)您是回頭客了,伙計(jì),來(lái),給這位爺打包!
               伙計(jì)齊聲道:要包什么?我們這里可以打包int32,double,string。。。
               老板:boolean,CreateBoolean()跑哪里去了?快來(lái)打包!
            CreateBoolean():來(lái)了,您稍等,馬上打包完成。
            。。。。so的一聲。。。。
                  你:不錯(cuò),是個(gè)Object^了,我朋友怎么把boolean取出來(lái)?
               老板:取出來(lái)也方便,我們這邊有個(gè)GetBoolean()工具,但是Dino還沒(méi)研究怎么用,不過(guò)還有個(gè)方法,你可以用IReference<Boolean^> value = dynamic_cast<IReference<int^>> (boxedObj)就行了。
            好嘞,再來(lái)講講最后這個(gè)解包吧,就是unbox
            IReference是一個(gè)接口,可以允許枚舉型,結(jié)構(gòu)體,代理(delegate)等類型轉(zhuǎn)成一個(gè)value。
            generic<typename T>
            public interface class IReference: IPropertyValue

            它只有一個(gè)屬性
            public property T^ value
            {
               T^ get();
            }
            用的時(shí)候就直接賦值就行了
            IReference<int^> refInt = dynamic_cast<IReferenc<int^>>(boxedObj);
            返回值就是int型。

            總結(jié):給我的感覺(jué)Boxing還是相當(dāng)于把一個(gè)內(nèi)建類型封裝一下,讓其能作為Object^類型傳遞,因?yàn)镺bject^類是所有類的父類,所以可以很方便地轉(zhuǎn)換成你所需要的類。如果有其他簡(jiǎn)單的打包解包方法,請(qǐng)大家提出來(lái),希望有更多的朋友研究Windows 8,可以更多地交流一下。

             之后可能會(huì)翻譯Nish Sivakumar 在Code Project上寫(xiě)的一篇關(guān)于Windows Runtime的基礎(chǔ)知識(shí)的文章,寫(xiě)的挺好的,跟大家分享一下。鏈接在此,感興趣的朋友可以去查看:http://www.codeproject.com/Articles/262151/Visual-Cplusplus-and-WinRT-Metro-Some-fundamentals 

            posted on 2012-02-16 12:05 Dino-Tech 閱讀(293) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            欧美一区二区三区久久综| 日韩欧美亚洲综合久久影院Ds | 精品一区二区久久| 久久精品国产一区| 青青热久久综合网伊人| 久久无码AV中文出轨人妻| 无码人妻久久一区二区三区 | 中文字幕亚洲综合久久| 亚洲精品无码久久毛片| 精品蜜臀久久久久99网站| 久久亚洲色一区二区三区| 精品久久久久久亚洲精品| 天天久久狠狠色综合| 亚洲国产精品一区二区久久hs| 久久久国产精品福利免费| 一本久道久久综合狠狠爱| 亚洲国产精品综合久久网络| 国内精品伊人久久久久AV影院| 久久综合伊人77777| 999久久久国产精品| 狠狠88综合久久久久综合网 | 国产毛片欧美毛片久久久| 国产农村妇女毛片精品久久| 久久亚洲国产精品一区二区| 国产精品成人久久久| 久久久久国产一区二区三区| 人妻中文久久久久| 99久久亚洲综合精品网站| 国产精品一区二区久久国产| 亚洲国产另类久久久精品黑人| 久久国产精品无| 精品久久久久成人码免费动漫| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久99国产亚洲高清观看首页| 精品多毛少妇人妻AV免费久久| 久久精品国产男包| 欧美成a人片免费看久久| 久久人妻少妇嫩草AV蜜桃| 久久国产成人午夜aⅴ影院 | 久久久国产精品亚洲一区| 99久久婷婷免费国产综合精品|