Dot-Net
什麼是類型安全?
我最近參加了一次腦力測驗,得到了高分,但有幾個問題對我來說很難。也許是因為英語不是我的母語……問題之一是:
以下哪一項描述了類型安全?
- 用於確保 CLR 中引用和值類型的安全性的程式構造
- 防止因禁止非託管訪問而導致的記憶體洩漏
- 特定於 CLR 的功能保證類型不能訪問它們自己的 AppDomain 之外的記憶體
- 一種通過使用強名稱鍵來保護程序集及其類型的機制
- 處理保證分配的對象總是以兼容的方式訪問的概念
我認為是 1 或 5,但它們對我來說聽起來很奇怪:(
你怎麼看?
實際上我認為這是選擇 5,因為類型安全與安全性無關。
類型安全是一種語言的特性,旨在使
$$ Robin Milner $$$$ 1 $$ML 程式的著名口號:良好類型的程序不會出錯。 口號需要一些解包才能正確理解,但它基本上意味著程序不會因為執行時類型錯誤而失敗,即當應用於建構子或函式的參數具有不兼容類型的值時。
考慮一種允許整數、整數函式作為一等值、函式抽象和部分函式應用的語言,並將通常的整數算術運算符定義為二進制函式。類型安全的屬性是編譯器強制執行的,以確保加法運算符的兩個參數都是減少為整數而不是函式的表達式。如果一個程序是類型良好的,那麼編譯器可以為它發出一個可執行對象。否則,它會標記程式錯誤併中止。