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 :

Portée des variables (Public Shared)


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Portée des variables (Public Shared)
    Salut,

    Après avoir parcouru http://xo.developpez.com/tutoriel/vb.net/poo/ je me suis renseigné sur la structure générale d'un document.
    J'ai lu aussi http://www.excelpourtous.com/index.php?artid=33 pour la portée des variables, mais aussi http://plasserre.developpez.com/cour...e-vb1#LV-B-3-b sans trouver ma réponse.

    En fait j'ai:

    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
    Imports System
     
    Class Form1
        PublicShared TableIndex AsInteger = 0
        PublicShared TableFiles() AsString
     
        Private Sub Boutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Boutton
        If (AddFiles.ShowDialog() = System.Windows.Forms.DialogResult.OK) Then
            Dim file AsString
            ForEach file In AddFiles.FileNames
                If Array.Exists(ListFiles, AddressOf CheckExistence) Then
                    ListFiles.Items.Add(file)
                    TableFiles(TableIndex) = file
                    TableIndex = TableIndex + 1
                EndIf
            Next
        EndIf
        End Sub
     
        Private Shared Function CheckExistence(ByVal NameFile AsString) AsBoolean
        For Each File InTableFiles
            If File = NameFile Then
                Return False
            End If
        Next
        Return True
        End Function
     
    End Class
    En gros j'ai une liste de fichiers, je sélectionne des nouveaux fichiers et je regarde qu'ils n'existent pas dans mon tableau (équivalent !in_array() php).

    Le problème c'est que si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public TableFiles() As String
    mon TableFiles dans ma fonction est souligné (erreur, je crois qu'il ne trouve pas la variable, mais avec shared ça fonctionne). Pourtant, en Public, la variable est disponible partout?

    Merci

    P.S Désolé pour le code y'a des problèmes d'espace...

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    C'est parce qu'il ne s'agit pas d'un problème de visibilité. Dans une méthode statique (mot clé Shared), donc qui ne dépend pas d'une instance de la classe, on ne peut pas manipuler des membres non statiques (liés à une instance de la classe). Question de logique.

    P.S Désolé pour le code y'a des problèmes d'espace...
    Il y a surtout des problèmes dans le contenu de ton message, tout était noyé par des balises de formatage. J'ai corrigé, mais je me demande comment tu t'y es pris
    Pas de questions techniques par MP

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    D'accord, qu'est ce qu'il faudrait modifier pour que je garde des variables seulement publiques et non shared? (C'est juste pour ma culture, c'est pas nécessaire là)

    Merci

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Tu as lu mon message précédent avant de poser cette question ? Parce que la réponse est dedans. Pas directement certes, mais si tu as compris la notion de "statique" alors tu trouveras la réponse à ta question.

    Sinon, exposer directement les champs en public sans passer par une propriété c'est pas très propre (sauf cas particulier des champs constants). Tu as entendu parler du principe d'encapsulation en objet ?
    Pas de questions techniques par MP

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

Discussions similaires

  1. [XL-2010] Portée des variables: variables locales ou public; sub, private sub et Option Explicit
    Par RicardoBxl dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2011, 20h34
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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