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

C# Discussion :

Constructeurs et appels virtuels


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut Constructeurs et appels virtuels
    Encore une différence notable entre C# et C++ :

    En C# l'appel de méthodes virtuelles dans le constructeur de la classe de base vont bien aller chercher les méthodes de la classe dérivée.

    Or le constructeur de la classe dérivée n'a pas encore été appellé.

    Le chapitre 2.7 Les classes abstraites du pdf Introduction à C# 2008 disponible sur ce site, et que je suis en train de lire, aborde la fonctionnalité mais ne fait pas mention de ce problème.

    Donc attendez-vous à des surprises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace csharp_test22
    {
      abstract class Base
      {
        public Base()
        {
          Coucou();
          Boom();
        }
     
        public abstract void Coucou();
        public abstract void Boom();
      }
     
      class Derived : Base
      {
        string str = null;
        public Derived()
        {
          str = "ok";
        }
        public override void Coucou()
        {
          Console.WriteLine( "Coucou Derived" );
        }
        public override void Boom()
        {
          Console.WriteLine( str.GetType() );
        }
      }
     
    }

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    D'où le titre "Introduction à C# 2008"

    Quand le lecteur lit un document d'introduction, il reste en général prudent.

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    457 pages d'introduction
    J'ai hâte de voir la taille du tome I quand il sortira.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Faut dire que le domaine est vaste

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Par défaut
    Ce Pdf d'introduction est disponible à partir de quelle adresse ?

    Car cela m'intéresse fortement

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Sur le site, il était pas caché Section tutoriels, csharp.

    http://tahe.developpez.com/dotnet/csharp/

    Pour le moment je le trouve assez plaisant à lire, même si je me serais largement passé de la tartine sur "qu'est ce que l'objet / l'héritage?". Surtout lorsqu'on nous explique :
    Soit un objet enseignant E. Cet objet contient en son sein un objet Personne
    gloups

    J'aime pas trop non plus les termes francisés genre paramètres formels/effectifs, transcryptage pour parler d'un cast, indexeur comme traduction littérale du subscript operator... mais ça ne gène pas la compréhension.

    Le plus gros défaut pour le moment, à mon avis, ce sont surtout les choix de présentation du code. Même si cela dépend des gouts et des couleurs de chacun, c'est parfois vraiment illisible (exemple attaché d'un morceau au hazard et de comment ça aurait pu être)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Constructeur non appelé
    Par Krustig dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 27/01/2011, 00h01
  2. constructeur et appelant
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/11/2010, 13h11
  3. Réponses: 6
    Dernier message: 10/10/2007, 20h11
  4. Réponses: 2
    Dernier message: 01/06/2006, 14h36

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