Tür Listesi (Visual Basic)

Genel bir programlama öğesi için tür parametrelerini belirtir. Birden çok parametre virgülle ayrılır. Bir tür parametresinin söz dizimi aşağıdadır.

Sözdizimi

[genericmodifier] typename [ As constraintlist ]

Parça

Süre Tanım
genericmodifier isteğe bağlı. Yalnızca genel arabirimlerde ve temsilcilerde kullanılabilir. In anahtar sözcüğünü kullanarak Out anahtar sözcüğünü veya ters değişkenini kullanarak bir tür kovaryan bildirebilirsiniz. Bkz . Kovaryans ve Contravariance.
typename Gerekli. Tür parametresinin adı. Bu, karşılık gelen tür bağımsız değişkeni tarafından sağlanan tanımlı bir türle değiştirilecek bir yer tutucudur.
constraintlist isteğe bağlı. için typenamesağlanabilir veri türünü kısıtlayan gereksinimlerin listesi. Birden çok kısıtlamanız varsa, bunları küme ayracı ({ }) içine alın ve virgülle ayırın. Kısıtlama listesini As anahtar sözcüğüyle tanıtmalısınız. Listenin başında yalnızca bir kez kullanırsınız As .

Açıklamalar

Her genel programlama öğesi en az bir tür parametresi almalıdır. Tür parametresi, istemci kodunun genel türün bir örneğini oluşturduğunda belirttiği belirli bir tür ( oluşturulan öğe) için yer tutucudur. Genel bir sınıf, yapı, arabirim, yordam veya temsilci tanımlayabilirsiniz.

Genel bir türün ne zaman tanımlanacağı hakkında daha fazla bilgi için bkz . Visual Basic'te Genel Türler. Tür parametre adları hakkında daha fazla bilgi için bkz . Bildirilen Öğe Adları.

Kurallar

  • Parantez. Tür parametresi listesi sağlarsanız, bunu parantez içine almanız ve listeyi Of anahtar sözcüğüyle tanıtmalısınız. Listenin başında yalnızca bir kez kullanırsınız Of .

  • Kısıtlama -ları. Tür parametresindeki kısıtlamaların listesi herhangi bir bileşimde aşağıdaki öğeleri içerebilir:

    • Herhangi bir sayıda arabirim. Sağlanan türün bu listedeki tüm arabirimleri uygulaması gerekir.

    • En fazla bir sınıf. Sağlanan türün bu sınıftan devralması gerekir.

    • New anahtar sözcüğü. Sağlanan tür, genel türünüzün erişebileceği parametresiz bir oluşturucuyu kullanıma sunmalıdır. Bir tür parametresini bir veya daha fazla arabirimle kısıtlarsanız bu yararlı olur. Arabirimler uygulayan bir tür mutlaka bir oluşturucuyu kullanıma sunmaz ve bir oluşturucunun erişim düzeyine bağlı olarak, genel türdeki koda erişemeyebilir.

    • Class Anahtar sözcük veya Structure anahtar sözcük. Class anahtar sözcüğü, genel tür parametresini, bu parametreye geçirilen herhangi bir tür bağımsız değişkeninin bir başvuru türü (örneğin, dize, dizi veya temsilci) ya da bir sınıftan oluşturulmuş bir nesne olmasını zorunlu kılacak şekilde kısıtlar. Structure anahtar sözcüğü genel tür parametresini kısıtlar ve bu parametreye geçirilen herhangi bir tür bağımsız değişkeninin bir değer türü olmasını (örneğin, yapı, numaralandırma veya temel veri türü) zorunlu kılar. hem Structure hem de Class öğesini aynı constraintlistiçine ekleyemezsiniz.

    Sağlanan tür, içinde yer constraintlistalan her gereksinimi karşılamalıdır.

    Her tür parametresindeki kısıtlamalar, diğer tür parametrelerindeki kısıtlamalardan bağımsızdır.

Davranış

  • Derleme Zamanı Değiştirme. Genel bir programlama öğesinden bir tür oluşturduğunuzda, her tür parametresi için tanımlı bir tür sağlamanız gerekir. Visual Basic derleyicisi, genel öğe içindeki her oluşum typename için tür sağlayan yerine kullanılır.

  • Kısıtlamaların Olmaması. Tür parametresinde herhangi bir kısıtlama belirtmezseniz, kodunuz bu tür parametresi için Nesne Veri Türü tarafından desteklenen işlemlerle ve üyelerle sınırlıdır.

Örnek 1

Aşağıdaki örnekte, sözlüğe yeni bir giriş eklemeye ilişkin bir iskelet işlevi de dahil olmak üzere genel sözlük sınıfının iskelet tanımı gösterilmektedir.

Public Class dictionary(Of entryType, keyType As {IComparable, IFormattable, New})
    Public Sub add(ByVal et As entryType, ByVal kt As keyType)
        Dim dk As keyType
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Örnek 2

Genel dictionary olduğundan, onu kullanan kod, her biri aynı işlevselliğe sahip ancak farklı bir veri türü üzerinde hareket eden çeşitli nesneler oluşturabilir. Aşağıdaki örnekte girdiler ve Integer anahtarlar içeren String bir nesne oluşturan bir dictionary kod satırı gösterilmektedir.

Dim dictInt As New dictionary(Of String, Integer)

Örnek 3

Aşağıdaki örnekte, önceki örnek tarafından oluşturulan eşdeğer iskelet tanımı gösterilmektedir.

Public Class dictionary
    Public Sub Add(ByVal et As String, ByVal kt As Integer)
        Dim dk As Integer
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Ayrıca bkz.