Lire en anglais

Partager via


Erreur du compilateur CS0077

L’opérateur as doit être utilisé avec un type référence ou un type Nullable ('int' est un type valeur qui n’autorise pas les valeurs null).

Un type valeur a été passé à l’opérateur as. Étant donné que as peut retourner null, il ne peut être passé qu’un type référence ou un typevaleur nullable.

Cependant, en utilisant la correspondance de motifs avec l'opérateur is, nous pouvons directement effectuer la vérification de type et les affectations en une seule étape.

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

// CS0077.cs  
using System;  

struct S  
{  
}  
  
class M  
{  
   public static void Main()  
   {  
      object o;
      S s;  

      o = new S();
  
      s = o as S;    // CS0077, S is not a reference type

      // Use pattern matching instead of as
      if (o is S sValue)
      {
          s = sValue;
      } 
   }  
}