Pointeurs et code unsafe (Guide de programmation C#)Unsafe Code and Pointers (C# Programming Guide)

Pour conserver la sécurité des types, par défaut, C# ne prend pas en charge les opérations arithmétiques sur les pointeurs.To maintain type safety and security, C# does not support pointer arithmetic, by default. Cependant, en utilisant le mot clé unsafe, vous pouvez définir un contexte non sécurisé dans lequel des pointeurs peuvent être utilisés.However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. Pour plus d’informations sur les pointeurs, consultez la rubrique Types pointeur.For more information about pointers, see the topic Pointer types.

Note

Dans le common language runtime (CLR), le code non sécurisé est appelé « code non vérifiable ».In the common language runtime (CLR), unsafe code is referred to as unverifiable code. Le code non sécurisé en C# n’est pas nécessairement dangereux : il s’agit simplement de code dont la sécurité ne peut pas être vérifiée par le CLR.Unsafe code in C# is not necessarily dangerous; it is just code whose safety cannot be verified by the CLR. Le CLR exécute du code non sécurisé seulement s’il se trouve dans un assembly entièrement fiable.The CLR will therefore only execute unsafe code if it is in a fully trusted assembly. Si vous utilisez du code non sécurisé, il vous incombe de vérifier que votre code n’introduit pas de risques de sécurité ni d’erreurs de pointeur.If you use unsafe code, it is your responsibility to ensure that your code does not introduce security risks or pointer errors.

Vue d’ensemble du code non sécuriséUnsafe Code Overview

Le code non sécurisé a les propriétés suivantes :Unsafe code has the following properties:

  • Les méthodes, les types et les blocs de code peuvent être définis comme non sécurisés.Methods, types, and code blocks can be defined as unsafe.

  • Dans certains cas, le code non sécurisé peut augmenter les performances d’une application en supprimant les vérifications des limites des tableaux.In some cases, unsafe code may increase an application's performance by removing array bounds checks.

  • Du code non sécurisé est obligatoire quand vous appelez des fonctions natives nécessitant des pointeurs.Unsafe code is required when you call native functions that require pointers.

  • L’utilisation de code non sécurisé introduit des risques pour la sécurité et la stabilité.Using unsafe code introduces security and stability risks.

  • Pour que C# compile du code non sécurisé, l’application doit être compilée avec /unsafe.In order for C# to compile unsafe code, the application must be compiled with /unsafe.

Pour plus d'informations, voir :For more information, see:

Spécification du langage C#C# Language Specification

Pour plus d'informations, voir la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussiSee Also

Guide de programmation C#C# Programming Guide