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.
Newanahtar 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 daStructureanahtar 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 deClassaynı olamazStructureconstraintlist.
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