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 :

Petite question sur les return de fonction


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut
    Bonjour,

    je suis une développeur C# mais avec de bonnes bases en VB .NET, je dois encadrer des développeurs qui débutent en VB NET (avant ils étaient sur du COBOL d'où leurs difficultés). J'ai remarqué que dans leur code, il faisait un return dans un "if" par exemple mais aucune return dans le else ou à la fin. Donc Visual studio indique en soulignant en vert la fin de la fonction pour dire que la fonction ne retourne pas tjrs qque chose. En C", à la compilation ça ne passe pas par contre en VB il laisse faire. Je suppose que si on a un traitement à faire avec le retour de cette fonction mais que rien n'est retourné, cela va lever une erreur. Pouvez-vous me le confirmer ? Je dois leur expliquer ça je pense.

    Merci d'avance

    un petit exemple:

    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
     
        Public Shared Function RechOperations(ByVal bob As Coil) As DataSet
     
            Dim selectCmdBuilder As New Stainless.Framework.DBSelectCommandBuilder("IBM.Data.DB2")
            selectCmdBuilder.FromPart = Trim(strDb2Prefix & "." & Trim(strTableOperation))
     
            'Select Case CodeAction
            '   Case sfx.Class_Type.context.ModeCreation
            With selectCmdBuilder
                .Distinct = True
                .SelectPart.Add("CDUSINE")
                .SelectPart.Add("NOBOB")
                .SelectPart.Add("INBOB")
                .SelectPart.Add("RGOPE")
                .SelectPart.Add("CDNUA")
                .SelectPart.Add("CDATEL")
                .SelectPart.Add("CDOUTIL")
                .SelectPart.Add("CDOPE")
                .SelectPart.Add("CDTACHE")
                .SelectPart.Add("CDSITUA")
                .SelectPart.Add("DTSITUA")
                .SelectPart.Add("LAENT")
                .SelectPart.Add("EPENT")
                .SelectPart.Add("PDENT")
                .SelectPart.Add("LASOR")
                .SelectPart.Add("EPSOR")
                .SelectPart.Add("PDSOR")
                .SelectPart.Add("CDCONSI")
                .WherePart.Add("NOBOB", DbType.String, 6, ASx.Enums.Operator.Equals, bob.CoilNumber)
                .WherePart.Add("INBOB", DbType.String, 1, ASx.Enums.Operator.Equals, bob.CoilIndex)
            End With
     
            'End Select
     
            Dim resultDataSet As DataSet = ASx.Database.ExecuteDataSet(Configuration.Db2ConnectionString, selectCmdBuilder)
     
            If resultDataSet.Tables.Count = 0 Then
                MsgBox("non trouve")
                'Throw New ApplicationException(String.Format("Ce coil n'existe pas dans KATE = '{0}', indice '{1}',rang '{2}'.", NoBob, InBob))
            Else
     
                'pout test
                'Dim strCoil As String = resultDataSet.Tables(0).Rows(0).Item("NOBOBSTK").ToString
                'permet de renommer les colommnes par défaut récuperer du dataset
                'NameColumnDataset(resultDataSet, "Table", "Assignment")
     
                Return resultDataSet
     
     
            End If
     
        End Function

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Bonjour,

    Ca dépend peut être de l'option "Option Strict" qui devait être a oui en C# et est maintenant a non.

    Sinon effectivement si tu appelle une fonction et qu'elle ne retourne rien, tu peux te retrouver avec une NullReferenceException il me semble.

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut
    OK, merci pour l'info mais bon, vu qu'il débute je vais qd même les prévenir d'éviter cela, car je ne trouve pas ça propre, je suis peut-être trop exigent ^^

  4. #4
    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
    Citation Envoyé par gueulederack Voir le message
    OK, merci pour l'info mais bon, vu qu'il débute je vais qd même les prévenir d'éviter cela, car je ne trouve pas ça propre, je suis peut-être trop exigent ^^
    Je serais même allé jusqu'à leur imposer l'option Strict et Explicit! Ca évite de faire du grand n'importe quoi comme ca

  5. #5
    Membre éclairé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Par défaut
    c pas moi le Chef de projet malheureusement, et il est borné

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    dans les propriétés du projet, on peut choisir d'avoir des avertissements, des erreurs, ou rien pour plusieurs types de problèmes dans le genre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Petite question sur les fonctions
    Par acacia dans le forum Mathématiques
    Réponses: 6
    Dernier message: 06/02/2009, 17h52
  2. Petites question sur les onglets...
    Par jarod_bx dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2005, 18h45
  3. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  4. Réponses: 3
    Dernier message: 08/12/2004, 13h58
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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