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 :

VB.NET n'est-il pas case sensitive ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut VB.NET n'est-il pas case sensitive ?
    Hello,

    Je viens de tomber sur un comportement qui me laisse perplexe...

    Soit la classe suivante :
    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
    Public Class frmStep2Demo
     
        Public Property CurrentUser As PROMO_BLL.User
        Public Property Step1 As frmStep1
     
        Private _cons As PROMO_BLL.Concessions
        Private _con As PROMO_BLL.Concession
        Public Property SelectedConcessions As PROMO_BLL.Concessions
     
        Public Sub New(user As PROMO_BLL.User, step1 As frmStep1)
     
            ' This call is required by the designer.
            InitializeComponent()
     
            ' Add any initialization after the InitializeComponent() call.
            CurrentUser = user
            Me.Step1 = step1
     
            SelectedConcessions = New PROMO_BLL.Concessions
     
        End Sub
    End Class
    En l'état, pas de souci. Par contre, si je modifie le constructeur comme ci-dessous, alors la propriété Step1 de ma classe n'est pas initialisée... Il ne fait que réaffecter le paramètre sur lui-même (rien quoi).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Public Sub New(user As PROMO_BLL.User, step1 As frmStep1)
     
            ' This call is required by the designer.
            InitializeComponent()
     
            ' Add any initialization after the InitializeComponent() call.
            CurrentUser = user
            Step1 = step1
     
            SelectedConcessions = New PROMO_BLL.Concessions
     
        End Sub
    Il me semblait pourtant que la casse était importante dans le nom des objets. Me serais-je fourvoyé ?

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    VB.Net est en effet insensible à la casse contrairement à C# (ce qui j'estime est une bonne chose ; distinguer des éléments juste par la casse me semble "dangereux")

  3. #3
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Citation Envoyé par Sehnsucht Voir le message
    VB.Net est en effet insensible à la casse contrairement à C# (ce qui j'estime est une bonne chose ; distinguer des éléments juste par la casse me semble "dangereux")
    Perso je trouve ça assez pratique pour différencier les membres private/protected (commençant par une minuscule) des accesseurs public (commençant par une majuscule).
    Cette sensibilité à la casse, ou plus précisément la rigueur qu'elle impose, peut également avoir son avantage quand on doit faire des replaces de masses en reprise de code.

    Désolé pour le HS

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Perso je trouve ça assez pratique pour différencier les membres private/protected (commençant par une minuscule) des accesseurs public (commençant par une majuscule).
    Pour des membres privés, je préfère les préfixer d'un underscore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private _variable As String
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Pareil, toutes mes variables de classes avec un Underscore en prefix, comme ça les paramètres et les propriétés publiques correspondants ont des jolies noms pour l'extérieur, et pas de mégarde à l'intérieur.

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Perso, les propriétés et les classes commencent par une majuscule. Les variables par une minuscule.

    J'ai testé le _ pendant un temps en essayant de me conformiser avec cette convention utilisée presque partout mais je trouve que ça alourdi fortement le code à la lecture.

    Perso, je trouve cela dommage cette insensibilité. Moi qui suis fort rigoureux (du moins je fais mon max pour l'être), je trouvais cela pratique... Cela m'aurait éviter d'avoir soit à alourdir mon code par l'utilisation de "Me." devant la propriété, soit de devoir modifier le nom du paramètre en input du constructeur. Des deux solutions, je n'en aime aucune et je choisis la première par dépit.

    D'ailleurs, y a un reste de mes tests avec _ dans l'exemple que j'ai donné ^^.

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

Discussions similaires

  1. Apache Windows n'est pas case sensitive !
    Par weabow dans le forum Apache
    Réponses: 4
    Dernier message: 10/11/2011, 16h28
  2. Réponses: 22
    Dernier message: 14/09/2010, 16h27
  3. [Oracle] Enlever le case sensitive???
    Par osmoze dans le forum Oracle
    Réponses: 21
    Dernier message: 18/07/2007, 09h40
  4. Réponses: 3
    Dernier message: 11/02/2005, 14h39
  5. [VB.NET] Le DataBinding en vb.net, c'est comment?
    Par Pleymo dans le forum ASP.NET
    Réponses: 11
    Dernier message: 04/02/2005, 14h14

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