IMO unsafe permet seulement d'utiliser des types de pointeur et des opérations de pointeur de style C++ sur la mémoire. Mais pour indiquer au collecteur de déchets de ne pas toucher à mon code, utilisez l'instruction fixed.
C# prend en charge la manipulation directe de la mémoire via des pointeurs à l'intérieur de blocs de code marqués unsafe et compilés avec l'option /unsafe du compilateur.
L'instruction fixed est utilisée pour indiquer au collecteur de déchets de ne pas toucher au code qui a été entouré de l'instruction fixed
unsafe
{
fixed (int* a = &b) // indique au collecteur de déchets de ne pas toucher
{
*a = 9;
}
}