亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#編譯器有什么作用

發布時間:2021-12-02 11:55:37 來源:億速云 閱讀:112 作者:iii 欄目:編程語言

本篇內容介紹了“C#編譯器有什么作用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

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

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

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

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

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

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

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

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

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

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

“C#編譯器有什么作用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭锦后旗| 资阳市| 枝江市| 海城市| 开鲁县| 嫩江县| 四平市| 南充市| 孝昌县| 房产| 大英县| 集安市| 谷城县| 宕昌县| 理塘县| 呼和浩特市| 南木林县| 永和县| 全南县| 景泰县| 双鸭山市| 崇仁县| 普陀区| 贵溪市| 临朐县| 英山县| 化州市| 连州市| 丹阳市| 乌鲁木齐县| 崇礼县| 会泽县| 三门县| 西宁市| 深圳市| 河曲县| 布拖县| 正镶白旗| 甘谷县| 建阳市| 西城区|