Aracılığıyla paylaş


Parametre Dizileri (Visual Basic)

Genellikle, yordam bildiriminin belirttiğinden daha fazla bağımsız değişken içeren bir yordamı çağıramazsınız. Süresiz sayıda bağımsız değişkene ihtiyacınız olduğunda, bir parametre dizisi bildirebilirsiniz. Bu, bir yordamın bir parametre için değer dizisini kabul etmesini sağlar. Yordamı tanımlarken parametre dizisindeki öğe sayısını bilmeniz gerekmez. Dizi boyutu, prosedüre yapılan her çağrı tarafından ayrı ayrı belirlenir.

ParamArray tanımlamak

Parametre listesindeki bir parametre dizisini belirtmek için ParamArray anahtar sözcüğünü kullanırsınız. Aşağıdaki kurallar geçerlidir:

  • Bir yordam yalnızca bir parametre dizisi tanımlayabilir ve yordam tanımındaki son parametre olmalıdır.

  • Parametre dizisi değer olarak geçirilmelidir. ByVal anahtar sözcüğünü yordam tanımına açıkça eklemek iyi bir programlama uygulamasıdır.

  • Parametre dizisi otomatik olarak isteğe bağlıdır. Varsayılan değeri, parametre dizisinin öğe türünün boş bir tek boyutlu dizisidir.

  • Parametre dizisinden önceki tüm parametreler zorunlu olmalıdır. Parametre dizisi isteğe bağlı tek parametre olmalıdır.

ParamArray Çağırma

Parametre dizisini tanımlayan bir yordamı çağırdığınızda, bağımsız değişkeni aşağıdaki yollardan herhangi biriyle sağlayabilirsiniz:

  • Hiçbir şey — yani, ParamArray bağımsız değişkenini ihmal edebilirsiniz. Bu durumda, prosedüre boş bir dizi geçirilir. Nothing anahtar sözcüğünü açıkça geçirirseniz, yordama null bir dizi geçirilir ve çağrılan yordam bu koşulu denetlemezse NullReferenceException ile sonuçlanabilir.

  • Virgülle ayrılmış rastgele sayıda bağımsız değişkenin listesi. Her bağımsız değişkenin veri türü, ParamArray öğe türüne örtük olarak dönüştürülebilir olmalıdır.

  • Parametre dizisinin öğe türüyle aynı öğe türüne sahip bir dizi.

Her durumda, yordam içindeki kod, ParamArray veri türüyle aynı olan veri türündeki öğelerle parametre dizisini tek boyutlu bir dizi olarak ele alır.

Önemli

Süresiz olarak büyük olabilecek bir diziyle her uğraştığınızda, uygulamanızın bazı iç kapasitesinin aşılması riski vardır. Parametre dizisini kabul ederseniz, çağıran kodun ona iletmiş olduğu dizinin boyutunu test etmelisiniz. Uygulamanız için çok büyükse uygun adımları uygulayın. Daha fazla bilgi için bkz . Diziler.

Örnek

Aşağıdaki örnek işlevini calcSumtanımlar ve çağırır. ParamArray parametresinin args değiştiricisi işlevin değişken sayıda bağımsız değişkeni kabul etmesine olanak tanır.

Module Module1

    Sub Main()
        ' In the following function call, CalcSum's local variables
        ' are assigned the following values: args(0) = 4, args(1) = 3,
        ' and so on. The displayed sum is 10.
        Dim returnedValue As Double = CalcSum(4, 3, 2, 1)
        Console.WriteLine("Sum: " & returnedValue)
        ' Parameter args accepts zero or more arguments. The sum
        ' displayed by the following statements is 0.
        returnedValue = CalcSum()
        Console.WriteLine("Sum: " & returnedValue)
    End Sub

    Public Function CalcSum(ByVal ParamArray args() As Double) As Double
        CalcSum = 0
        If args.Length <= 0 Then Exit Function
        For i As Integer = 0 To UBound(args, 1)
            CalcSum += args(i)
        Next i
    End Function

End Module

Aşağıdaki örnek, parametre dizisine sahip bir yordam tanımlar ve parametre dizisine geçirilen tüm dizi öğelerinin değerlerini verir.

Sub studentScores(ByVal name As String, ByVal ParamArray scores() As String)
    Debug.WriteLine("Scores for " & name & ":" & vbCrLf)
    ' Use UBound to determine largest subscript of the array.
    For i As Integer = 0 To UBound(scores, 1)
        Debug.WriteLine("Score " & i & ": " & scores(i))
    Next i
End Sub
Call studentScores("Anne", "10", "26", "32", "15", "22", "24", "16")
Call studentScores("Mary", "High", "Low", "Average", "High")
Dim JohnScores() As String = {"35", "Absent", "21", "30"}
Call studentScores("John", JohnScores)

Ayrıca bakınız