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