Небезопасный код и указатели (Руководство по программированию в C#)

Обновлен: Ноябрь 2007

Для обеспечения строгой типизации и безопасности C# по умолчанию не поддерживает арифметические операции над указателями. Однако с помощью ключевого слова unsafe можно определить небезопасный контекст для использования указателей. Дополнительные сведения об указателях см. в разделе Типы указателей.

t2yzs44b.alert_note(ru-ru,VS.90).gifПримечание.

В среде CLR небезопасный код называют непроверяемым. Небезопасный код в C# не обязательно представляет опасность. Это просто код, безопасность которого не может быть проверена средой CLR. Поэтому CLR выполнит этот код, только если он находится в полностью надежной сборке. При использовании небезопасного кода необходимо обеспечить гарантию того, что он не создаст угрозу безопасности и не вызовет ошибки указателей. Дополнительные сведения см. в разделе Безопасность (руководство по программированию на C#).

Общие сведения о небезопасном коде

Небезопасный код имеет следующие свойства.

  • Методы, типы и блоки кода могут определяться как небезопасные.

  • В некоторых случаях небезопасный код может повысить производительность приложения за счет удаления проверок границ массива.

  • Использование небезопасного кода рекомендуется при вызове встроенных функций, требующих указателей.

  • Использование небезопасного кода создает угрозу безопасности и стабильной работы.

  • Для компиляции небезопасного кода в C# необходимо, чтобы приложение было скомпилировано с помощью /unsafe.

Связанные разделы

Дополнительные сведения см. в следующих разделах:

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 18 Небезопасный код

  • B 3 Грамматические расширения для небезопасного кода

См. также

Основные понятия

Руководство по программированию в C#