Le mot clé unsafe indique un contexte non sécurisé, qui est requis pour toute opération impliquant des pointeurs. Pour plus d'informations, consultez Pointeurs et code unsafe (guide de programmation C#).
Vous pouvez utiliser le modificateur unsafe dans une déclaration de type ou de membre. L'étendue textuelle complète du type ou du membre est ainsi considérée comme un contexte non sécurisé. Par exemple, la méthode suivante est déclarée avec le modificateur unsafe :
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}La portée du contexte non sécurisé s'étend de la liste de paramètres à la fin de la méthode, de sorte que les pointeurs puissent aussi être utilisés dans la liste de paramètres :
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}Vous pouvez également utiliser un bloc non sécurisé pour activer l'utilisation d'un code unsafe au sein de ce bloc. Par exemple :
unsafe
{
// Unsafe context: can use pointers here.
}Pour compiler du code unsafe, vous devez spécifier l'option du compilateur /unsafe. Le code unsafe n'est pas vérifiable par le Common Language Runtime.
Exemple// cs_unsafe_keyword.cs
// compile with: /unsafe
using System;
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);
}
}Sortie
25
Spécification du langage C#Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.
-
18 Code unsafe
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ