Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

InvalidCastException, classe

Exception levée pour un casting non valide ou une conversion explicite.

System.Object
  System.Exception
    System.SystemException
      System.InvalidCastException

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class InvalidCastException : SystemException

Le type InvalidCastException expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInvalidCastException()Initialise une nouvelle instance de la classe InvalidCastException.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInvalidCastException(String)Initialise une nouvelle instance de la classe InvalidCastException avec un message d'erreur spécifié.
Méthode protégéeInvalidCastException(SerializationInfo, StreamingContext)Initialise une nouvelle instance de la classe InvalidCastException avec des données sérialisées.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInvalidCastException(String, Exception)Initialise une nouvelle instance de la classe InvalidCastException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception.
Méthode publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInvalidCastException(String, Int32)Initialise une nouvelle instance de la classe InvalidCastException avec un message et un code d'erreur spécifiés.
Début

  NomDescription
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreDataObtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l'utilisateur sur l'exception. (Hérité de Exception.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHelpLinkObtient ou définit un lien vers le fichier d'aide associé à cette exception. (Hérité de Exception.)
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHResultObtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique. (Hérité de Exception.)
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInnerExceptionObtient l'instance Exception qui a provoqué l'exception actuelle. (Hérité de Exception.)
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMessageObtient un message qui décrit l'exception actuelle. (Hérité de Exception.)
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreSourceObtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. (Hérité de Exception.)
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStackTraceObtient une représentation sous forme de chaîne des frames immédiates sur la pile des appels. (Hérité de Exception.)
Propriété publiqueTargetSiteObtient la méthode qui lève l'exception actuelle. (Hérité de Exception.)
Début

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetBaseExceptionEn cas de substitution dans une classe dérivée, retourne Exception qui est à l'origine d'une ou de plusieurs exceptions suivantes. (Hérité de Exception.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetObjectDataEn cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception. (Hérité de Exception.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le type au moment de l'exécution de l'instance actuelle. (Hérité de Exception.)

Dans XNA Framework 3.0, ce membre est hérité de Object.GetType().


Dans Bibliothèque de classes portable Bibliothèque de classes portable, ce membre est hérité de Object.GetType().


Dans .NET pour les applications du Windows Store Windows 8, ce membre est hérité de Object.GetType().
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringCrée et retourne une chaîne représentant l'exception en cours. (Hérité de Exception.)
Début

  NomDescription
Événement protégéSerializeObjectStateSe produit lorsqu'une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées relatives à l'exception. (Hérité de Exception.)
Début

Une exception d'InvalidCastException est levée lorsque la conversion d'une instance d'un type en un autre type n'est pas prise en charge. Elle diffère d'une exception OverflowException, qui est levée lorsqu'une conversion d'un type à un autre est prise en charge, mais la valeur du type source est en dehors de la plage du type cible.

Pour obtenir des informations sur les conversions prises en charge par le système, consultez la classe Convert. Pour plus d'informations sur les erreurs se produisant lorsque le type de destination peut stocker des valeurs type sources, mais n'est pas suffisamment grand pour stocker une valeur source spécifique, consultez l'exception OverflowException.

RemarqueRemarque

Dans de nombreux cas, votre compilateur de langage détecte qu'aucune conversion n'existe entre le type source et le type cible et émet une erreur du compilateur.

Certaines des conditions sous lesquelles une conversion a été tentée lève une exception InvalidCastException dont les suivantes :

  • Vous appelez directement ou indirectement l'implémentation IConvertible d'un type primitif qui ne prend pas en charge une conversion particulière. Par exemple, essayer de convertir une valeur Boolean en Char ou une valeur DateTime en Int32 lève une exception InvalidCastException. L'exemple suivant appelle Boolean.IConvertible.ToChar et les méthodes Convert.ToChar(Boolean) pour convertir une valeur Boolean en Char. Dans les deux cas, l'appel de méthode lève une exception InvalidCastException.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          bool flag = true;
          try {
             IConvertible conv = flag;
             Char ch = conv.ToChar(null);
             Console.WriteLine("Conversion succeeded.");
          }   
          catch (InvalidCastException) {   
             Console.WriteLine("Cannot convert a Boolean to a Char.");
          }
    
          try {
             Char ch = Convert.ToChar(flag);
             Console.WriteLine("Conversion succeeded.");
          }   
          catch (InvalidCastException) {   
             Console.WriteLine("Cannot convert a Boolean to a Char.");
          }
       }
    }
    // The example displays the following output:
    //       Cannot convert a Boolean to a Char.
    //       Cannot convert a Boolean to a Char.
    
    
    
  • Vous avez appelé la méthode Convert.ChangeType pour convertir un objet d'un type en un autre, mais l'un des deux types ou les deux n'implémentent pas l'interface IConvertible.

  • Ni le type de source ou le type cible ne définit une conversion explicite ou restrictive entre les deux types, et l'implémentation IConvertible de un ou deux types ne prend pas en charge une conversion du type source au type cible.

  • Vous êtes sous-castez, Autrement dit, vous essayez de convertir une instance d'un type de base en un de ses types dérivés. Dans l'exemple suivant, essayer de convertir un objet Person en un objet PersonWithID échoue.

    
    using System;
    
    public class Person
    {
       String _name;
    
       public String Name 
       { 
          get { return _name; }
          set { _name = value; }
       }
    }
    
    public class PersonWithId : Person
    {
       String _id;
    
       public string Id
       {
          get { return _id; }
          set { _id = value; }
       }
    }
    
    public class Example
    {
       public static void Main()
       {
          Person p = new Person();
          p.Name = "John";
          try {
             PersonWithId pid = (PersonWithId) p;
             Console.WriteLine("Conversion succeeded.");
          }   
          catch (InvalidCastException) {
             Console.WriteLine("Conversion failed.");
          } 
    
          PersonWithId pid1 = new PersonWithId();
          pid1.Name = "John";
          pid1.Id = "246";
          Person p1 = pid1;
          try {   
             PersonWithId pid1a = (PersonWithId) p1;
             Console.WriteLine("Conversion succeeded.");
          }   
          catch (InvalidCastException) {
             Console.WriteLine("Conversion failed.");
          } 
    
          Person p2 = null;
          try {   
             PersonWithId pid2 = (PersonWithId) p2;
             Console.WriteLine("Conversion succeeded.");
          }   
          catch (InvalidCastException) {
             Console.WriteLine("Conversion failed.");
          } 
       }
    }
    // The example displays the following output:
    //       Conversion failed.
    //       Conversion succeeded.
    //       Conversion succeeded.
    
    
    

    Comme le montre l'exemple, le sous-cast réussit uniquement si l'objet Person a été créé par un sur-cast d'un objet PersonWithId en un objet Person, ou si l'objet Person est null.

Pour qu'une conversion de référence explicite réussisse, la valeur source doit être null ou le type d'objet référencé par l'argument source doit être convertible en type de destination par une conversion de référence implicite.

Les instructions IL (Microsoft Intermediate Language) suivantes lèvent une exception InvalidCastException :

  • castclass

  • refanyval

  • unbox

InvalidCastException utilise le HRESULT COR_E_INVALIDCAST dont la valeur est 0x80004002.

Pour obtenir une liste des valeurs initiales des propriétés d'une instance de InvalidCastException, consultez les constructeurs InvalidCastException.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft