Type-safe v.s.Type-Unsafe解析
时间:2014-07-16 14:55 来源: 我爱IT技术网 作者:山风
有一些编程语言比较自由,允许我们去做一些危险的动作。比如说C和C++的Pointer就允许我们直接对内存做操作。这类的功能让程序语言变得很强大,但是一不小心有可能会让程序整个当掉。这种允许我们任意存取记忆体位置的程式语言就不能算是Type-safe。
比如说以下的C程式让我们access超过int boundary的位置:
int i = 10;
char *s = (char*)i;
print(*(s+10));
这种问题不会发生在C#身上,因为C#是Type-safe的程式语言。
以下范例在C和C++合法,但是在C#会丢出错误讯息:
double d = 10.59;
int i = 5;
i = d; //this causes an Error
在C#中不能随便把某个型别的资料当作是另外一种型别,如果编译器认为这样转型是不合法的,在编译的时候就会丢出错误。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
