日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
介紹MonoC#編譯器

據(jù)Marek Safar稱,通過使用一種名為類型推斷(type inference)的技術(shù),Mono C#編譯器現(xiàn)在已經(jīng)能夠支持隱式類型的局部變量以及隱式類型的數(shù)組了。

在“類C”的語言,比如C#中,我們經(jīng)常使用類似“type variable = new type”這樣略顯冗余的辦法來創(chuàng)建一個對象。若是變量的類型名稱較長,或是會經(jīng)常變化,那么這樣的聲明方法更是將顯得非常乏味。

借助于***引入的“var”關(guān)鍵字,C# 3.0大大減小了這類冗余。通過這樣的聲明方式,開發(fā)者即可在得到動態(tài)創(chuàng)建類型便利的同時,也無須犧牲原有的靜態(tài)類型支持。編譯器將通過等號右面的類型信息來確定變量的實際類型。

需要注意的一點是,C#仍舊是早期綁定和靜態(tài)類型的。類似Visual Basic這類延遲綁定(late binding)語言中的一些常見問題(比如由拼寫錯誤造成的“missing method exception”)并不會在C#中出現(xiàn)。

雖然看上去不錯,不過添加類型推斷卻不只是為了提高開發(fā)者的那么一點點輸入速度。類型推斷是實現(xiàn)匿名類的一個必要的前提條件,而匿名類則在LINQ中被廣 泛使用。因為匿名類并沒有一個指定的類型名稱,所以若是沒有了類型推斷的支持,我們就無法在C#中創(chuàng)建該類型的實例。(VB則是通過延遲綁定來實現(xiàn)的這個 功能,不過這也帶來了“missing method exception”之類的問題。)

C#中支持兩種類型推斷:隱式類型變量和隱式類型數(shù)組。二者的實現(xiàn)基礎(chǔ)完全相同,即在編譯時將“var”替換成為分析得到的正確的變量或數(shù)組類型表達式。

若是變量的聲明和賦值不在同一行書寫的話,編譯器將不允許我們使用類型推斷。雖然從技術(shù)角度上考慮,實現(xiàn)這個功能沒有什么困難,不過Mono C#編譯器的開發(fā)團隊可能是為了避免其帶來的復雜性,所以并沒有考慮支持這個功能。

Marek Safar還提到了兩個無法應(yīng)用類型推斷的場景。

故名思意,“隱式類型局部變量”將無法用于域變量或常量的聲明中,否則將導致編譯錯誤。

我無法確定為什么會設(shè)置這樣的限制,或許我有些地方考慮得也不夠全面。

注意:從技術(shù)角度考慮,匿名類也擁有類型名稱,該類型名稱是由Mono C#編譯器自動生成的。不過匿名類的名稱卻無法預料,因此我們只需要考慮其實現(xiàn)細節(jié)。換句話說,我們***將匿名類的名稱當作根本不存在。


本文題目:介紹MonoC#編譯器
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/dpeiohe.html