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

Windows Forms Discussion :

Déclarer une fonction dans une autre fonction avec les méthodes anonymes et délégués


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut Déclarer une fonction dans une autre fonction avec les méthodes anonymes et délégués
    Salut tout le monde,

    je suis déclarer une fonction dans une autre fonction afin qu'elle ne soit visible et accessible que dans celle-ci.

    J'ai presque trouvé mon bonheur avec les délégués et fonctions anonymes, le seul grain de sable qui reste est que la déclaration du délégué doit se faire en dehors de la fonction.
    Hors, comme je souhaite n'utiliser la fonction interne que dans une fonction, je désirerais ne rien déclarer hors de la fonction principale.

    Voici un code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class MaClasse
    {
        delegate void MonDelegue( string s );
        public void Test()
        {
            MonDelegue d = delegate( string s ) { MessageBox.Show( s ); };
            d( "Toto" );
            d( "Tata" );
        }
    }
    Voici le code que je souhaiterais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class MaClasse
    {
        public void Test()
        {
            delegate void MonDelegue( string s );
            MonDelegue d = delegate( string s ) { MessageBox.Show( s ); };
            d( "Toto" );
            d( "Tata" );
        }
    }
    Ou un autre dans le même style, où tout se fait dans la méthode Test.
    Y-a-t-il une solution ou pas ?

    PS : merci de ne pas dire que c'est inutile, ce n'est pas forcément utile dans cet exemple mais ce n'est qu'un exemple.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Je sais que ma réponse n'est pas celle que tu attends, mais il me semble que dans la vision de la POO de .Net, les deux seuls niveaux d'encapsulation sont la classe et l'assembly. Pour ce qui est de la portée des variables, ce sont les blocs de code entre accolades. un delegate étant une classe, on ne peut la définir dans un bloc de code.

  3. #3
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Je comprends, ce qui veut dire que ce n'est pas possible.
    Ca explique en même temps pourquoi on ne peut pas déclarer de fonction dans une fonction.
    Tant pis, je vais continuer ainsi en laissant la déclaration du délégué dans la classe.

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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