IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages Discussion :

conversion avec as


Sujet :

Langages

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut conversion avec as
    Bonjour,

    soit le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     List<Animal> animaux = new List<Animal>();
                        Animal chien_1 = new Chien();
     
                        Animal chat_1 = new Chat();
     
                        Animal animal_1 = new Animal();
     
                        Chien chien_2 = new Chien();
    Soit l'instruction suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     Object c3 = chien_1 as Chien;
    si je teste ce qu'est c3, j'obtiens bien l'affichage "le c3 est bien un Animal" et "le c3 est bien un Chien".
    Je comprends bien car la classe Chien dérive de la classe Animal et donc tout Chien est un Animal.

    Mais du fait que c3 pointe uniquement vers les méthodes de la classe Object, cela est en contradiction avec le fait qu'il est un Animal et un Chien!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     if (c3 is Animal) { Console.WriteLine("le c3 est bien un Animal"); }
     
      if (c3 is Chien) { Console.WriteLine("le c3 est bien un Chien"); }
    L'affichage ci-dessus est donc un peu trompeur car c3 est , selon moi un simple Object.

    Merci de me dire ce que vous en pensez

    Bien cordialement.

    new_wave
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    Animal et Chien sont aussi des objets

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    is et as testent le contenu de la variable
    l'éditeur de code te propose les membres accessibles sur le type de la variable
    c3 étant un object il ne te propose pas grand chose
    et en effet c3 est un object, ce n'est pas parce qu'à un instant T il contient un chien que ce sera toujours le cas, vu qu'il est déclaré as object il peut contenir n'importe quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    object c3 = new Chien();
    c3 = new Button();
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut
    Merci beaucoup de ta reponse,

    Je voulais simplement dire que dans notre cas on a bien l'affichage

    Le c3 est un bien un Animal

    Le C3 est bien un Chien

    Alors que concrètement on ne peut pas appeler sur C3 la méthode Aboyer() de la classe Chien ou la méthode Respirer() de la classe Animal!


    Merci de ton retour.

    Cordialement.

    new_wave
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

Discussions similaires

  1. Conversion avec trang
    Par Linaa dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/03/2006, 13h42
  2. Souci de conversion avec XMLHttpRequest
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/03/2006, 13h19
  3. Problème de conversion avec CONVERT
    Par gowser dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/12/2005, 16h48
  4. Conversion avec template
    Par indy2 dans le forum Langage
    Réponses: 10
    Dernier message: 23/03/2005, 00h02
  5. Réponses: 5
    Dernier message: 12/01/2005, 20h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo