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

VB.NET Discussion :

Comment créer une Interface incluant du code


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Par défaut Comment créer une Interface incluant du code
    Bonjour,

    L'interface IDisposable implémente du code et des commentaires dans la classe où il est implémenter.

    Comment créer une telle interface incluant du code et des commentaires ?


    Merci d'avance,

    Pascal

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    en regardant du coté MSDN, tu trouvera p-e des réponses:
    http://msdn.microsoft.com/fr-fr/libr...isposable.aspx


  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Une interface n'implémente jamais de code. Pour référence, voici le contenu de IDisposable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    using System;
    using System.Runtime.InteropServices;
    namespace System
    {
    	/// <summary>Defines a method to release allocated resources.</summary>
    	/// <filterpriority>2</filterpriority>
    	[ComVisible(true)]
    	public interface IDisposable
    	{
    		/// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
    		/// <filterpriority>2</filterpriority>
    		void Dispose();
    	}
    }
    Le concept le plus proche de ce que tu appelles "une interface avec du code" est la classe abstraite. Les classes qui en héritent doivent implémenter les membres marqués MustInherit. Mais une classe abstraite peux aussi contenir des membres concrêts dont vont bénéficier les classes qui en héritent.

    Plus d'info ici: http://mbenzeghiba.developpez.com/tu...heritagevbnet/

    Exemple:

    public abstract class MyBase
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Par défaut
    hunteshiva,
    j'avais déjà regardé de ce côté, MSDN explique plutôt l'implémentation que la conception.

    SaumonAgile,
    je connais bien les classes abstraites et ce n'est pas du tout ce que je recherche à faire.
    L'interface IDisposable insère du code et des commentaires en plus des simples déclarations de méthodes et propriétés. Pour preuve, j'ai créé une classe vide et ajouté la ligne de code: "Implements IDisposable" et voici le résultat :
    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
     
    Public Class Class1
        Implements IDisposable
     
    #Region "IDisposable Support"
        Private disposedValue As Boolean ' To detect redundant calls
     
        ' IDisposable
        Protected Overridable Sub Dispose(ByVal disposing As Boolean)
            If Not Me.disposedValue Then
                If disposing Then
                    ' TODO: dispose managed state (managed objects).
                End If
     
                ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below.
                ' TODO: set large fields to null.
            End If
            Me.disposedValue = True
        End Sub
     
        ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources.
        'Protected Overrides Sub Finalize()
        '    ' Do not change this code.  Put cleanup code in Dispose(ByVal disposing As Boolean) above.
        '    Dispose(False)
        '    MyBase.Finalize()
        'End Sub
     
        ' This code added by Visual Basic to correctly implement the disposable pattern.
        Public Sub Dispose() Implements IDisposable.Dispose
            ' Do not change this code.  Put cleanup code in Dispose(ByVal disposing As Boolean) above.
            Dispose(True)
            GC.SuppressFinalize(Me)
        End Sub
    #End Region
     
    End Class
    D'autres idées ?

    Pascal

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Un outils (visual studio? resharper? un autre?) t'as géneré du code pour une implémentation courante de IDisposable. Il n'y a pas de code dans une interface.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    A mon avis c'est un snippet qui est responsable. C'est simplement un morceau de code configurable associé à un mot-clé.
    Fais une recherche sur les code snippets de Visual Studio pour comprendre comment cela fonctionne.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

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

Discussions similaires

  1. Comment créer une interface avec implémentation
    Par Linconnu dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 27/10/2011, 18h12
  2. Comment créer une interface excel sur la base d'un tableau.?
    Par anasleco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/09/2009, 18h03
  3. Comment créer une interface graphique modulable ?
    Par michou22 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 17/04/2009, 19h26
  4. Réponses: 1
    Dernier message: 19/03/2008, 07h57
  5. Réponses: 7
    Dernier message: 10/01/2007, 18h41

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