Небезопасный код и указатели (Руководство по программированию в C#)
Обновлен: Ноябрь 2007
Для обеспечения строгой типизации и безопасности C# по умолчанию не поддерживает арифметические операции над указателями. Однако с помощью ключевого слова unsafe можно определить небезопасный контекст для использования указателей. Дополнительные сведения об указателях см. в разделе Типы указателей.
![]() |
---|
В среде CLR небезопасный код называют непроверяемым. Небезопасный код в C# не обязательно представляет опасность. Это просто код, безопасность которого не может быть проверена средой CLR. Поэтому CLR выполнит этот код, только если он находится в полностью надежной сборке. При использовании небезопасного кода необходимо обеспечить гарантию того, что он не создаст угрозу безопасности и не вызовет ошибки указателей. Дополнительные сведения см. в разделе Безопасность (руководство по программированию на C#). |
Общие сведения о небезопасном коде
Небезопасный код имеет следующие свойства.
Методы, типы и блоки кода могут определяться как небезопасные.
В некоторых случаях небезопасный код может повысить производительность приложения за счет удаления проверок границ массива.
Использование небезопасного кода рекомендуется при вызове встроенных функций, требующих указателей.
Использование небезопасного кода создает угрозу безопасности и стабильной работы.
Для компиляции небезопасного кода в C# необходимо, чтобы приложение было скомпилировано с помощью /unsafe.
Связанные разделы
Дополнительные сведения см. в следующих разделах:
Спецификация языка C#
Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:
18 Небезопасный код
B 3 Грамматические расширения для небезопасного кода