Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sub names
Message
De
14/02/2011 04:51:50
 
 
À
14/02/2011 04:37:38
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Titre:
Divers
Thread ID:
01500059
Message ID:
01500062
Vues:
46
>>>Hi
>>>
>>>I've found in one of the modules I'm looking at there are duplicate sub routine names (below)
>>>I'm suprised this isn't flagged as an error.
>>>
>>>Is this permissible in .NET. It seems quite confusing to me.
>>>
>>>Nick
>>>
>>>
>>>
>>>Private Sub plotPointBounce(ByVal monthRow As DataRow, ByVal seriesName As String)
>>>
>>>Private Sub plotPointBounce(ByVal month As DateTime, ByVal seriesName As String, ByVal bounceRate As Double, _
>>> ByVal inWarrantyRatio As Double)
>>
>>Standard method overloading... If the parameters are different then the signature is different. It would be likely that a call to the first example will simply add some default values for bounceRate and inWarrantyRatio before calling the second.
>
>I see that
>
>But if you always go through A to get to B why bother.

But you don't *always* go through A to get to B. If you have something like this:
   Private Sub plotPointBounce(ByVal monthRow As DataRow, ByVal seriesName As String)
        Dim dt As DateTime = DirectCast(monthRow("DT"), DateTime)
        plotPointBounce(dt, seriesName, 0, 0)
    End Sub

    Private Sub plotPointBounce(ByVal month As DateTime, ByVal seriesName As String, ByVal bounceRate As Double, _
 ByVal inWarrantyRatio As Double)
    End Sub
then you can call the second version directly with a different date and specific values for the last two parameters. Of course if you were always passing the same last two values from the first version you could make the final two parameters in the second version optional and drop them from the first version completely:
   Private Sub plotPointBounce(ByVal monthRow As DataRow, ByVal seriesName As String)
        Dim dt As DateTime = DirectCast(monthRow("DT"), DateTime)
        plotPointBounce(dt, seriesName)
    End Sub

    Private Sub plotPointBounce(ByVal month As DateTime, ByVal seriesName As String, _
 Optional ByVal bounceRate As Double = 0, Optional ByVal inWarrantyRatio As Double = 0)
    End Sub
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform