很多人将C#和Java进行比较的时候,认为C#支持指针是C#的一个特点。我的个人观点认为任何事务应该一分为二的看,有利必然有弊。关于支持指针是好还是不好,不同的人有不同的看法,这个讨论很多。我们在此仅仅是讨论如何在C#中使用指针,并不是讨论它的利弊。
1、修改工程配置
工程中默认的配置是不支持代码的非安全性的,如果我们想使用指针就要修改这个默认的设置。否则我们在编译的时候就会出现“不安全代码只会在使用/unsafe编译的情况下出现”。具体的设置如下图所示。
2、定义非安全代码
在C#中如果想使用指针就需要将代码定义为unsafe。unsafe是C#中的一个关键字,我们可以将一个类、一个方法、代码块或者字段标记为unsafe。剩下的工作就和在其它语言中使用指针相同了。下面是一个使用指针的代码演示。













