Partager via


Erreur du compilateur CS1919

Le type unsafe 'type name' ne peut pas être utilisé dans la création d’objet.

L’opérateur new crée des objets uniquement sur le tas managé. Vous pouvez toutefois créer indirectement des objets dans la mémoire non managée en utilisant les fonctionnalités d’interopérabilité du langage pour appeler des méthodes natives qui retournent des pointeurs.

Pour corriger cette erreur

  1. Utilisez un type safe dans la nouvelle expression de création de l’objet. Par exemple, utilisez char ou int plutôt que char* ou int*.

  2. Si vous devez créer des objets dans la mémoire non managée, utilisez une méthode Win32 ou COM, ou bien écrivez votre propre fonction en C ou C++ et appelez-la à partir de code C#.

Exemple

L’exemple suivant génère l’erreur CS1919, car un type de pointeur est unsafe :

// cs1919.cs  
// Compile with: /unsafe  
unsafe public class C  
{  
    public static int Main()  
    {  
        var col1 = new int* { }; // CS1919  
        var col2 = new char* { }; // CS1919  
        return 1;  
    }  
}  

Voir aussi