Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
Utilisez un type safe dans la nouvelle expression de création de l’objet. Par exemple, utilisez
char
ouint
plutôt quechar*
ouint*
.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;
}
}