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 :

#Region dans une procédure ou une fonction


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 47
    Points
    47
    Par défaut #Region dans une procédure ou une fonction
    Bonjour,

    Je recherche un moyen de lisibilité de code sous Visual Studio 2005.
    Il existe les #Region #End Region mais ce n'est visiblement pas utilisable au sein d'une fonction ou procédure.

    Existe il un moyen de pallier à cela ?

    Tatone

  2. #2
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par tatone Voir le message
    Bonjour,

    Je recherche un moyen de lisibilité de code sous Visual Studio 2005.
    Il existe les #Region #End Region mais ce n'est visiblement pas utilisable au sein d'une fonction ou procédure.

    Existe il un moyen de pallier à cela ?

    Tatone
    Bah si tu peux mettre des Regions où tu veux... De plus utilise des block With - End With pour mettre en forme ton code
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    Voila l'erreur que j'ai quand j'insere ces lignes dans le corps de ma procédure :

    Erreur : Les instructions '#Region' et '#End Region' ne sont pas valides dans le corps des méthodes.

    J'en deduis que ce n'est pas possible...

  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    En voila la preuve :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #Region "class"
    Public Class ListerRepertoire
        Private TheTreeview As TreeView
        Private Delegate Function TN_Delegate(ByVal a As TreeNode) As Int32
     
        Public Sub New(ByVal TV As TreeView)
            TheTreeview = TV 'affecte la Treeview
        End Sub
    #Region "procedure1"
        Public Sub ListerMesRepertoire(ByVal Rep As String, ByVal Parent As TreeNode)
            Try
                'Recupere la liste des entrees du repetoire
                Dim Liste As String() = Directory.GetFileSystemEntries(Rep)
                Dim Entree As String
     
                For Each Entree In Liste 'Pour chaque entree de la liste
                    Dim TmpName As String = Microsoft.VisualBasic.Mid(Entree, Len(Rep) + 1) 'On decoupe proprement le nom du fichier ou repertoire
                    TmpName = Microsoft.VisualBasic.Replace(TmpName, "\", "") 'On enleve les caracteres parasite !!!!
     
                    If File.Exists(Entree) Then     'Si c'est un fichier
                        AddNode(TmpName, True, Parent)  'On Creer un element fichier dans le treeview
                    Else    'Si  c'est un repertoire
                        Dim TmpNode As TreeNode 'Var tempo pour sauver le noeud du treeview 
                        TmpNode = AddNode(TmpName, False, Parent) 'On ajoute le rep dans le treeview
                        ListerMesRepertoire(Entree, TmpNode) 'On Liste le contenus de ce repertoire
                    End If
                Next Entree
            Catch Ex As System.UnauthorizedAccessException 'si le répertoire est protégé
                Exit Sub
            Catch e As Exception 'en cas d'erreurs
                MsgBox("Erreur : " & e.Message, MsgBoxStyle.Critical)
            End Try
        End Sub
    #End Region
    #Region "procedure2"
        Private Function AddNode(ByVal StrNom As String, ByVal BlFile As Boolean, ByVal Parent As TreeNode) As TreeNode
            Try
                Dim TmpNode As TreeNode      'Noeud Pour les manipulation dans la function 
     
                If Not Parent Is Nothing Then ' Si Parent n'Est pas a nothing 
                    'TmpNode = Parent.Nodes.Add(Str_Nom) 'On cree un element fils
                    Dim no As New TreeNode
                    no.Text = StrNom
                    With TheTreeview
                        .Invoke(New TN_Delegate(AddressOf Parent.Nodes.Add), New Object() {no})
                    End With
                    TmpNode = no
                Else ' Si Parent Est a nothing c sans doute le premier element du treeview ou une racine
                    'TmpNode = TreeView1.Nodes.Add(Str_Nom)
                    Dim no As New TreeNode
                    no.Text = StrNom
                    With TheTreeview
                        .Invoke(New TN_Delegate(AddressOf TheTreeview.Nodes.Add), New Object() {no})
                    End With
                    TmpNode = no
                End If
     
                Application.DoEvents()  'histoire de faire beau ^^ Non je pense que ca limitera le risque d'erreur
                Return TmpNode
            Catch ex As Exception
                Return Nothing
                MsgBox(ex.ToString)
            End Try
        End Function
    #End Region
     
    End Class
    #End Region
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    Je suis entièrement d'accord.
    Mais il est impossible de mettre les #region dans la fonction ou la procédure ??

  6. #6
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par tatone Voir le message
    Je suis entièrement d'accord.
    Mais il est impossible de mettre les #region dans la fonction ou la procédure ??
    Exact mais il n'y a aucun interet à mettre une region dans une procédure car une procédure ne fait pas 300 lignes ! Sinon comme je te l'ai dis si tu veux mettre en forme ton code utilise des Blocs With - End With (si tu peux)
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    Merci pour la confirmation..

    Mes 400 lignes de codes vont rester tel que...
    avec des simples commentaires

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par tatone Voir le message
    Merci pour la confirmation..

    Mes 400 lignes de codes vont rester tel que...
    avec des simples commentaires
    400 lignes dans une procédure ???

    Etonnant, mes procédure ne dépassent pas 100 lignes ! (il faut créer des sous routines.) Je comprends mieux maintenant pourquoi tu voudrais séparer car on dois vraiment s'embrouiller...
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 62
    Points : 47
    Points
    47
    Par défaut
    Et je ne peux faire de sous routines car j'ai des requêtes imbriquées et des vérifications en tel nombre que c'est trop compliqué à reprendre.
    Je ne peux rien federer non plus....

    Encore merci.


    Tatone

  10. #10
    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
    si tu nous donne une 50aine de lignes de ton code, j'suis sur qu'on peut en faire une ou deux sous routines ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par tatone Voir le message
    Et je ne peux faire de sous routines car j'ai des requêtes imbriquées et des vérifications en tel nombre que c'est trop compliqué à reprendre.
    Je ne peux rien federer non plus....

    Encore merci.


    Tatone
    On peut toujours faire quelque chose, si tu le souhaites, ouvres un autre post et explique bien ton problème et donne tout le code !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. [Débutant] récupération d'une variable d'une procédure a une autre
    Par labib23dz dans le forum C#
    Réponses: 5
    Dernier message: 26/02/2012, 19h30
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Réponses: 6
    Dernier message: 30/08/2007, 16h47

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