1.在C和C++的程序看来,指针即是它们最强有力地工具之一,同时又给他们带来了很多苦恼之处;
2.因为指针指向的数据类型不可能不相同,比如你可以把int类型的指针指向一个float类型的变量,而这时程序并不会出错。
3.而且,如果删除了一个不应该删除的指针(比如Windows中指向主程序的指针),程序就有可能崩溃。
4.由此可见,滥用指针会给程序的安全性埋下了隐患。
5.正因为如此,在C#语言中取消了指针这个概念;
6.当然,对指针恋恋不舍得程序员仍然可以在C#中使用指针,但必须声明这段程序是“非安全”(unsafe), 而在C#中采用的是引用类型-----代表 (delegate), 它实际上相当于C#中的函数指针原型。
7. 与指针不同的是,代表在C#是类型安全的。 |