Небезопасный код — это код, который выполняется без управления системы CLR, использующий указатели.
Небезопасный код объявляется с помощью ключевого слова unsafe и в свойствах проекта, нужно разрешить использовать небезопасный код.
С помощью оператора fixed, можно предотвратить удаление сборщиком мусора управляемой переменной, на которую ссылается указатель.
Небезопасный код объявляется с помощью ключевого слова unsafe и в свойствах проекта, нужно разрешить использовать небезопасный код.
С помощью оператора fixed, можно предотвратить удаление сборщиком мусора управляемой переменной, на которую ссылается указатель.
Для использования небезопасного кода: Project. Property. Вкладка Build. Выберите чек бокс Allow unsafe code.
Main.cs
using
System;
class
Program {
-
//опасный код объявляется с помощью ключевого слова unsafe
-
unsafe
public
static
int
Main() {
-
//переменная на которую будет ссылаться указатель
-
int
val = 5;
-
//объявляем указатель и обнуляем его, что бы не был диким
-
int
* pointer =
null
;
-
//инициализируем его адресом переменной
-
pointer = &val;
-
//через указатель смотрим значение переменной
-
Console.WriteLine(*pointer);
-
//через указатель изменяем значение переменной
-
*(
int
*)pointer = 10;
-
Console.WriteLine(val);
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
class
Program {
-
//опасный код объявляется с помощью ключевого слова unsafe
-
unsafe
public
static
int
Main() {
-
//переменная на которую будет ссылаться указатель
-
int
val = 5;
-
//объявляем указатель и обнуляем его, что бы не был диким
-
int
* pointer =
null
;
-
//инициализируем его адресом переменной
-
pointer = &val;
-
//через указатель смотрим значение переменной
-
Console.WriteLine(*pointer);
-
//через указатель изменяем значение переменной
-
*(
int
*)pointer = 10;
-
Console.WriteLine(val);
-
Console.ReadKey();
-
return
0;
-
}
}
5
10
10