SafeandUnsafeCode今天看了这个关于safeandunsafecode的问题,然后在MSDN上看了,还是没看懂。为什么要在C#中使用指针?这纯粹是为了速度吗?使用不安全代码的三个原因:有时您需要指针将C#连接到底层操作系统或其他本机代码。强烈建议您不要这样做,因为它“不安全”(natch)。在极少数情况下,您的性??能受CPU限制,以至于您需要一点额外的性能。我的建议是用汇编程序或C/C++中的单独模块编写这些CPU密集型部分,导出API,并让您的.NET代码调用该API。一个可能的附加好处是您可以将特定于平台的代码放在非托管模块中并使其与.NET平台无关。我倾向于避免它,但有时它非常有用:就像上一个一样,我在其中维护了一些序列化代码。不必使用BitConverter.GetBytes(每次都创建一个数组)将浮点数写入流是一件很痛苦的事情——但我可以作弊:floatf=...;inti=*(int*)&f;现在我可以使用shift(>>)等。写i比写f更容易(如果我调用了BitConverter.GetBytes,字节将相同,而且我现在通过选择使用shift来控制字节顺序)。至少有一个托管的.NetAPI经常不可避免地使用指针。请参见SecureString和Marshal.SecureStringToGlobalAllocUnicode。获取SecureString的纯文本值的唯一方法是使用Marshal方法之一将其复制到非托管内存。以上就是《C#学习教程:安全与不安全代码分享》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
