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 typename sağ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 veyaStructure
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. hemStructure
hem deClass
öğesini aynıconstraintlist
içine ekleyemezsiniz.
Sağlanan tür, içinde yer
constraintlist
alan 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