IMO небезопасно только разрешает использовать типы указателей и работать с памятью в стиле C ++.Но чтобы сборщик мусора не трогал мой код, используйте оператор fixed .
C # поддерживает прямое манипулирование памятью с помощью указателей внутри блоков кода, помеченных как небезопасные и компилируемых с параметром компилятора / unsafe.
Оператор fixed используется для указания сборщику мусора не касаться того кода, который был округлен до fixed , оператор
unsafe
{
fixed (int* a = &b) // tells garbage collector not touch
{
*a = 9;
}
}