Lire en anglais

Partager via


Erreur du compilateur CS0208

Impossible de prendre l’adresse, d’obtenir la taille ou de déclarer un pointeur vers un type managé ('type')

Même en cas d’utilisation avec le mot clé unsafe , il n’est pas autorisé de prendre l’adresse d’un objet managé, d’obtenir la taille d’un objet managé ou de déclarer un pointeur vers un type managé. Un type managé est :

  • tout type référence ;

  • tout struct qui contient un type référence comme un champ ou une propriété.

Pour plus d’informations, consultez Types non managés.

Exemple

L’exemple suivant génère l’erreur CS0208 :

// CS0208.cs  
// compile with: /unsafe  
  
class myClass  
{  
    public int a = 98;  
}  
  
struct myProblemStruct  
{  
    string s;  
    float f;  
}  
  
struct myGoodStruct  
{  
    int i;  
    float f;  
}  
  
public class MyClass  
{  
    unsafe public static void Main()  
    {  
        // myClass is a class, a managed type.  
        myClass s = new myClass();
        myClass* s2 = &s;    // CS0208  
  
        // The struct contains a string, a managed type.  
        int i = sizeof(myProblemStruct); //CS0208  
  
        // The struct contains only value types.  
        i = sizeof(myGoodStruct); //OK  
  
    }  
}