C#中有一个选项可以执行未经检查的代码。通常不建议这样做,因为托管代码更加安全并且可以解决很多问题。
但是我想知道,如果您确定您的代码不会引起错误,并且您知道如何处理内存,那为什么(如果您喜欢快速代码)遵循一般建议?
我想知道这一点,因为我编写了一个用于摄像机的程序,该程序需要非常快速的位图处理。我自己制作了一些快速的图形算法,并且使用非托管代码在位图上效果很好。
现在,我通常会怀疑,如果您确定没有内存泄漏或崩溃的风险,为什么不更频繁地使用非托管代码?
PS我的背景:我有点涉足这个编程领域,而且我一个人工作(我从事了几年),所以我希望这个软件设计问题不会那么奇怪。我真的没有其他人像老师那样问这些事情。
unsafe
用例示例:stackoverflow.com/q/11660127/102937
unsafe
意思是“知道自己在做什么,权衡利弊。” 我已经使用unsafe
了很少的时间,并且总是针对与性能相关的特定问题,这些问题可以用自己的方法来解决。我不将其用作一般的编程技术,因为在大多数情况下,额外的性能优势不值得在安全性上有所损失。