摘要:
目前,术语“托管代码”的概念还不明确,它是指任何在CLR控制下执行的代码。换句话说,它们起初是C#、VB、C++/CLI语言形式的源代码(或者是许多其他语言形式之一的源代码),它们的编译器对写入元数据和IL的高级语言代码进行转换。当然,利用像GC和安全这样的几个托管服务,CLR的JIT随后会将它们转变为其本地对等物。另一方面,非托管代码没有如此长的生命周期。它确实能够以某种... 阅读全文
摘要:
不安全代码和指针(C#编程指南)为了保持类型安全,默认情况下,C#不支持指针运算。不过,通过使用unsafe关键字,可以定义可使用指针的不安全上下文。有关指针的更多信息,请参见主题指针类型。注意在公共语言运行库(CLR)中,不安全代码是指无法验证的代码。C#中的不安全代码不一定是危险的,只是其安全性无法由CLR进行验证的代码。因此,CLR只对在完全受信任的程序集中的不安全代码执行操作。如果使用不安... 阅读全文
摘要:
提及.NET的指针操作,很多人并不是很了解,甚至还不知道有这么个东东由于C#的指针操作属于unsafe操作,所以很多人对unsafe使用起来都很谨慎其实所谓不安全代码,其实是不受控于CLR控制下的托管执行,相当于CLR领导下的部分区域自治,当然CLR也不会去关心不安全代码的内存分配和回收费话少说,先体验一下适当的指针操作带来的性能提升。平时我们通过GDI+操作稍大点图片象素时,都会有一种濒临崩溃的... 阅读全文