首页 > 编程 > C# > 正文

简单谈一谈C#类型安全问题

2023-05-20 20:23:41
字体:
来源:转载
供稿:网友

我们可以使用指针作为一个例子。在C++中拥有一个指针,你能zi you地把它强制转换成为任何类型,包括做出诸如把一个int*(整型指针)强制转换成一个double *(双精度指针)这样的傻事。只要内存支持这种操作,它就能工作。这并不是你所想象的企业级编程语言的类型安全。

原则性的问题,C#实施最严ge的类型安全,以保护自己及垃圾收集器(garbage collector)。因此必须遵守C#中一些有关变量的规则:

你不能使用没有初始化的变量。对于对象的成员变量,编译器负责清零。而局部变量,则由你负责清零。当你使用一个没有初始化的变量时,编译器会教你怎么做。优点是能够避免由于使用不经初始化的变量计算结果而导致的错误,而你还不知道这些奇怪的结果是如何产生的。

C#取消了不安全的类型转换。不能把一个整型强制转换成一个引用类型(如对象),而当向下转换时,C#验证这种转换是正确的。(也就是说,派生类真的是从向下转换的那个类派生出来的。)

边界检查是C#的一部分。再也不会出现这种情况:当数组实际只定义了n-1个元素,却超额地使用了n个元素。

算术运算有可能溢出结果数据类型的范围。C#允许在语句级或应用程序级检测这些运算。在允许检查溢出的情况下,当溢出发生时将会引发一个异常。

在C#中,被传递的引用参数是类型安全的。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表