Pointeurs et code unsafe (Guide de programmation C#)

Mise à jour : novembre 2007

Pour maintenir la sécurité et la fiabilité des types, par défaut, C# ne prend pas en charge d'opérations arithmétiques sur les pointeurs. Toutefois, à l'aide du mot clé unsafe, vous pouvez définir un contexte unsafe dans lequel des pointeurs peuvent être utilisés. Pour plus d'informations sur les pointeurs, consultez la rubrique Types pointeur.

Remarque :

Dans le Common Language Runtime (CLR), le code unsafe est connu sous le nom de code non vérifiable. Le code unsafe en C# n'est pas toujours dangereux ; c'est simplement du code dont le CLR ne peut pas vérifier la sécurité. Par conséquent, le CLR n'exécute du code unsafe que s'il se trouve dans un assembly d'un niveau de confiance suffisant. Si vous utilisez du code unsafe, il est de votre responsabilité de garantir qu'il n'entraîne pas de problèmes de sécurité ou d'erreurs de pointeur. Pour plus d'informations, consultez Sécurité (Guide de programmation C#).

Vue d'ensemble du code unsafe

Le code unsafe a les propriétés suivantes :

  • Les méthodes, types et blocs de code peuvent être définis comme unsafe.

  • Dans certains cas, le code unsafe augmente les performances d'une application lorsqu'il supprime les contrôles de taille de tableaux.

  • Le code unsafe est requis lorsque vous appelez des fonctions natives nécessitant des pointeurs.

  • L'utilisation d'un code unsafe introduit des risques de sécurité et de stabilité.

  • Pour que le code unsafe en C# puisse être compilé, l'application doit être compilée avec /unsafe.

Rubriques connexes

Pour plus d'informations, consultez :

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 18 Code unsafe

  • B.3 Extensions de syntaxe pour le code unsafe

Voir aussi

Concepts

Guide de programmation C#