Tür Listesi (Visual Basic)

Genel programlama öğesi için tür parametrelerini belirtir. Birden çok parametre virgülle ayrılır. Bir tür parametresi için sözdizimi aşağıda verilmiştir.

Syntax

[genericmodifier] typename [ As constraintlist ]

Bölümler

Süre Tanım
genericmodifier İsteğe bağlı. Yalnızca Genel arabirimlerde ve temsilcilerde kullanılabilir. In anahtar sözcüğünü kullanarak Out anahtar sözcüğünü veya değişken varyantını kullanarak bir tür covaryant bildirebilirsiniz. Bkz. Kovaryans ve değişken varyansı.
typename Gereklidir. 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ştirilmesini sağlamak için bir yer tutucudur.
constraintlist İsteğe bağlı. İçin sağlanabilecek veri türünü kısıtlayan gereksinimlerin listesi typename . Birden çok kısıtlamaınız varsa bunları küme ayraçları () içine alın { } ve bunları virgülle ayırın. Kısıtlama listesini as anahtar sözcüğüyle birlikte tanıtmalısınız. AsListenin başlangıcında yalnızca bir kez kullanılır.

Açıklamalar

Her genel programlama öğesi en az bir tür parametresi almalıdır. Tür parametresi, bir genel türün örneğini oluşturduğunda istemci kodunun belirttiği belirli bir tür ( oluşturulmuş bir öğe) için yer tutucudur. Bir genel 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 genel türler. Tür parametresi adları hakkında daha fazla bilgi için bkz. bildirilmemiş öğe adları.

Kurallar

  • Ayraçlar. Bir tür parametre listesi sağlarsanız, onu parantez içine almalısınız ve listeyi anahtar kelimesiyle birlikte almalısınız. OfListenin başlangıcında yalnızca bir kez kullanılır.

  • Kısıtlamaları. Bir tür parametresindeki kısıtlamaların listesi, aşağıdaki öğeleri herhangi bir kombinasyonda içerebilir:

    • Herhangi bir sayıda arabirim. Sağlanan tür, bu listedeki her arabirimi uygulamalıdır.

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

    • New anahtar sözcüğü. Sağlanan tür, genel türünün erişebileceği parametresiz bir Oluşturucu kullanıma sunmalıdır. Bir tür parametresini bir veya daha fazla arabirim ile sınırlandırdıysanız, bu faydalıdır. Arabirimleri uygulayan bir tür bir oluşturucuyu kullanıma sunmayabilir ve bir oluşturucunun erişim düzeyine bağlı olarak, genel türdeki kod buna erişemeyebilir.

    • ClassAnahtar sözcüğü ya da Structure anahtar sözcüğü. ClassAnahtar sözcüğü, geçirilen her tür bağımsız değişkenin bir başvuru türü olmasını gerektirmek için bir genel tür parametresi kısıtlar, örneğin bir String, array veya Delegate veya bir sınıftan oluşturulmuş bir nesne. StructureAnahtar sözcüğü, geçirilen her tür bağımsız değişkenin bir değer türü olmasını gerektirmek için bir genel tür parametresi kısıtlar, örneğin bir yapı, numaralandırma veya Öğesel veri türü. Hem hem de Class aynı olamaz Structure constraintlist .

    Sağlanan tür, içindeki dahil ettiğiniz her gereksinimi karşılamalıdır constraintlist .

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

Davranış

  • Derleme zamanı değiştirme. Genel programlama öğesinden oluşturulmuş bir tür oluşturduğunuzda, her tür parametresi için tanımlı bir tür sağlarsınız. Visual Basic derleyici, genel öğe içindeki her oluşum için sağlanan türü kullanır typename .

  • Kısıtlamaların yokluğu. Bir tür parametresinde herhangi bir kısıtlama belirtmezseniz, kodunuz bu tür parametresi için nesne veri türü tarafından desteklenen işlemler ve üyelerle sınırlandırılmıştır.

Örnek 1

Aşağıdaki örnek, sözlüğe yeni bir giriş eklemek için bir iskelet işlevi de dahil olmak üzere genel sözlük sınıfının iskelet tanımını gösterir.

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

dictionaryGenel olduğundan, onu kullanan kod, her biri aynı işlevselliğe sahip ancak farklı bir veri türü üzerinde işlem gören çeşitli nesneler oluşturabilir. Aşağıdaki örnek, dictionary girdiler ve anahtarlarla bir nesne oluşturan kod satırını gösterir String Integer .

Dim dictInt As New dictionary(Of String, Integer)

Örnek 3

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

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.