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 :

Ne peut pas substituer le membre hérité


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut Ne peut pas substituer le membre hérité
    Bonjour à tous,

    Je voulais comprendre comment gérer une listbox, je suis tombé sur ce code

    Après l'avoir copié dans un fichier source C#, et ajouté toutes les références enfin je l'espère, le lancement debogage me renvoie le message d'erreur suivant :

    'test.ListBox.Dispose()'*: ne peut pas substituer le membre hérité 'System.ComponentModel.Component.Dispose()', car il n'est pas marqué comme virtual, abstract ou override
    Et me souligne en bleu "Dispose" au debut de ces lignes de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public override void Dispose()
        {
            base.Dispose();
            container.Dispose();
        }
    Auriez-vous une idée ?

    Cordialement,
    Christophe Halgand

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Si je reprend la définition du modificateur override sur le MSDN

    Le modificateur override est nécessaire pour étendre ou modifier l'implémentation abstraite ou virtuelle d'une méthode, d'une propriété, d'un indexeur ou d'un événement hérité(e).
    Si j'analyse le code du lien que tu as indiqué, la classe ListBox hérite de la classe System.Windows.Forms.Form .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class ListBox : System.Windows.Forms.Form
    En regardant l'implémentation de System.Windows.Forms.Form , ni la classe Form ni la méthode Dispose ne possède les modificateurs virtual, abstract ou override. Donc tu ne peux pas faire un override de la méthode Dispose.

    Maintenant si tu te demandes pq cela a marché dans le code du gars , il est indiqué qu'il a utilisé les outils VS.NET SDK Beta 2.0 en 2004. Je pense que les implémentations des classes ont tous simplement évoluées depuis.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Merci pour cette réponse.

    Cordialement,
    Christophe Halgand

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/08/2009, 11h02
  2. Ubuntu ne peut pas démarrer serveur X
    Par Invité4 dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 02/07/2005, 15h57
  3. [C#] Comment masquer un membre hérité
    Par sblanc74 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 11/01/2005, 12h58
  4. [CR8.5] Ne peut pas insérer de carte dans un rapport
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 14/06/2004, 22h07
  5. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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