Шаг 123 - Unsafe код

unsafe это не надежный код. То есть этот код потенциально опасный. К такому коду относятся например операции с указателями. Работа у указателями является довольно тонким делом и чревата возникновением всяких там ошибок. Давайте посмотрим пример. Вот код:

using System;

class MyClass
{
	public static void Main() 
	{
		int Data = 10;
		int* ptrData = &Data;
		Console.WriteLine(Data);
		Console.WriteLine((int)ptrData );
	}
}

Попробуйте его скомпилировать. Вы получите сообщение об ошибках.

gif/123_1.gif (3802 b)

Это сообщение говорит, что указатели можно использовать только в unsafe варианте. Давайте сделаем эту функцию unsafe.

using System;

class MyClass
{
	public unsafe static void Main() 
	{
		int Data = 10;
		int* ptrData = &Data;
		Console.WriteLine(Data);
		Console.WriteLine((int)ptrData );
	}
	
}

Теперь все будет нормально.

gif/123_2.gif (2791 b)

При условии что Вы будете использовать ключ компилятора /unsafe. Вот пример Bat файла.

csc /unsafe  1.cs

Можно запускать. В результате Вы увидите и значение переменной и ее адрес.

gif/123_3.gif (1468 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 21.10.2001