不安全代码和指针(C# 编程指南)
更新:2007 年 11 月
为了保持类型安全,默认情况下,C# 不支持指针算法。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。有关指针的更多信息,请参见主题指针类型。
说明: |
---|
在公共语言运行时 (CLR) 中,不安全代码是指无法验证的代码。C# 中的不安全代码不一定是危险的;只是其安全性无法由 CLR 进行验证的代码。因此,CLR 只对在完全受信任的程序集中的不安全代码执行操作。如果使用不安全代码,由您负责确保您的代码不会引起安全风险或指针错误。有关更多信息,请参见安全性(C# 编程指南)。 |
不安全代码概述
不安全代码具有下列属性:
方法、类型和可被定义为不安全的代码块。
在某些情况下,通过移除数组界限检查,不安全代码可提高应用程序的性能。
当调用需要指针的本机函数时,需要使用不安全代码。
使用不安全代码将引起安全风险和稳定性风险。
在 C# 中,为了编译不安全代码,必须用 /unsafe 编译应用程序。
相关章节
有关更多信息,请参见:
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
18 不安全代码
B 3 不安全代码的语法扩展