Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Ключевое unsafe слово обозначает небезопасный контекст, который требуется для любой операции с указателями. Дополнительные сведения см. в разделе "Небезопасный код и указатели".
Справочные документы по языку C# описывают последнюю выпущенную версию языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.
Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.
Подсказка
Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей об истории версий языка C#.
unsafe Используйте модификатор в объявлении типа или члена. Весь текстовый экстент типа или члена является небезопасным контекстом. Например, следующий метод объявляется модификатором unsafe :
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}
Область небезопасного контекста расширяется из списка параметров до конца метода, поэтому можно также использовать указатели в списке параметров:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
Вы также можете использовать небезопасный блок, чтобы включить использование небезопасного кода внутри этого блока. Рассмотрим пример.
unsafe
{
// Unsafe context: can use pointers here.
}
Чтобы скомпилировать небезопасный код, необходимо указать параметр компилятора AllowUnsafeBlocks . Среда CLR не может проверить небезопасный код.
Пример
// compile with: -unsafe
class UnsafeTest
{
// Unsafe method: takes pointer to int.
unsafe static void SquarePtrParam(int* p)
{
*p *= *p;
}
unsafe static void Main()
{
int i = 5;
// Unsafe method: uses address-of operator (&).
SquarePtrParam(&i);
Console.WriteLine(i);
}
}
// Output: 25
Спецификация языка C#
Дополнительные сведения см. в разделе " Небезопасный код " в спецификации языка C#. Спецификация языка является авторитетным источником синтаксиса и использования языка C#.