什么是类型安全?

nig*_*der 9 .net testing type-safety brainbench

我最近有一次脑力训练考试,得到了很高的评价,但有几个问题对我来说很难.也许是因为英语不是我的母语......其中一个问题是:

以下哪一项描述了类型安全?

  1. 用于确保CLR中引用和值类型的安全性的编程构造
  2. 禁止非托管访问导致的内存泄漏保护
  3. 特定于CLR的功能可确保类型可能无法访问其自己的AppDomain外部的内存
  4. 创建一种机制,通过使用强名称密钥来保护程序集及其类型
  5. 处理分配对象的保证的概念总是以兼容的方式访问

我认为它是1或5,但无论如何它们听起来很奇怪:(

你怎么看?

osc*_*kuo 10

实际上我认为它是选择5因为类型安全与安全无关.

  • 我想我同意,但同样,措辞不好.我不确定在英语中是否有可能提出一种更倾斜的方式来描述类型安全,而不是"分配的对象总是以兼容的方式访问". (2认同)

jam*_*att 7

Type Safety是一种语言的特色,旨在使[Robin Milner] [1]关于ML编程的着名口号变得更好:良好类型的程序不会出错.

口号需要一些解包才能正确理解,但它基本上意味着程序不会因为运行时类型错误而失败,即当应用于构造函数或函数的参数具有不兼容类型的值时.

考虑一种允许整数,整数函数作为第一类值,函数抽象和部分函数应用程序的语言,并将通常的整数算术运算符定义为二进制函数.类型安全的属性是编译器强制执行的操作,以确保加法运算符的两个参数都是减少为整数而不是函数的表达式.如果程序是良好类型的,那么编译器可以为它发出可执行对象.否则,它标记编程错误并中止.