Visual Basic'de Genel Yordamlar
A Genel yordamolarak da bilinir, bir generic yöntem, en az bir tür parametresi ile tanımlanan bir yordam olan.Bu yordam çağrıları her zaman veri türleri kendi gereksinimlerine uyarlamak arama kodu sağlar.
Bir yordam yalnızca bir generic sýnýf ya da genel yapısı içinde tanımlanan sayesinde genel değil.Genel olması için yordamı gidebileceği herhangi bir normal parametrelere ek olarak en az bir tür parametresi gerçekleştirmeniz gerekir.Genel sınıf veya yapı içinde bulunuyorlar yordamları ve yapısı içinde bulunuyorlar bir sınıf içerebilir veya modül genel yordamları içerebilir.
Genel yordam türü parametrelerinin kendi normal parametre listesinde bir ve alt yordamı kod içeriyorsa, dönüş türü kullanabilirsiniz.
Tür kesmesi
Herhangi bir tür bağımsız değişkenleri hiç girmeden genel yordamı çağırabilirsiniz.Bu yolla çaðýrýrsanýz, derleyici geçirmek için yordamın tür bağımsız değişkeni için uygun veri türlerini belirlemek çalışır.Bu adı verilen tür kesmesi.Aşağıdaki kod bir çağrı gösterir ve derleyici tür geçmesi yorumlar, String tür parametresi için t.
Public Sub testSub(Of t)(ByVal arg As t)
End Sub
Public Sub callTestSub()
testSub("Use this string")
End Sub
Derleyici tür bağımsız değişkenleri aramanız bağlamından gösterilemez, bir hata bildirir.Olası bir neden, böyle bir hata bir dizi rütbe uyuşmazlık var.Örneğin, normal bir parametre türü parametre dizisi tanımladığınız varsayalım.Genel yordam çağrısı sağlayan bir dizi farklı rank (sayı) boyut uyuşmazlığı tür kesmesi başarısız olmasına neden.Aşağıdaki kod bir çağrı gösterir, iki boyutlu bir dizi tek boyutlu bir dizi bekleyen bir yordama iletilen içinde.
Public Sub demoSub(Of t)(ByVal arg() As t)
End Sub
Public Sub callDemoSub()
Dim twoDimensions(,) As Integer
demoSub(twoDimensions)
End Sub
Tüm tür bağımsız değişkenleri yalnızca atarak tür kesmesi çağırabilirsiniz.Bir tür bağımsız değişkeni kullanırsanız, tüm bunları sağlamanız gerekir.
Tür kesmesi genel yordamlar için desteklenir.Generic sýnýflar, yapıları, arabirimler ya da temsilciler tür kesmesi çağıramazsınız.
Örnek
Description
Aşağıdaki örnek genel tanımlar Function bir dizi belirli bir öğeyi bulmak için yordam.Bu bir tür parametre tanýmlar ve parametre listesi iki parametre oluşturmak için kullanır.
Kod
Public Function findElement(Of T As IComparable) (
ByVal searchArray As T(), ByVal searchValue As T) As Integer
If searchArray.GetLength(0) > 0 Then
For i As Integer = 0 To searchArray.GetUpperBound(0)
If searchArray(i).CompareTo(searchValue) = 0 Then Return i
Next i
End If
Return -1
End Function
Comments
Önceki örnekte karşılaştırmak için gereken searchValue her bir öğesi karşı searchArray.Bu yeteneği garantilemek için type parametresi sınırlar T uygulamak için IComparable arabirimi.Kodu kullanır CompareTo yöntemi yerine = operatörü, bir tür bağımsız değişkeni için sağlanan garanti olduğundan T destekler = işleci.
Test edebilirsiniz findElement aşağıdaki kodu yordama.
Public Sub tryFindElement()
Dim stringArray() As String = {"abc", "def", "xyz"}
Dim stringSearch As String = "abc"
Dim integerArray() As Integer = {7, 8, 9}
Dim integerSearch As Integer = 8
Dim dateArray() As Date = {#4/17/1969#, #9/20/1998#, #5/31/2004#}
Dim dateSearch As Date = Microsoft.VisualBasic.DateAndTime.Today
MsgBox(CStr(findElement(Of String)(stringArray, stringSearch)))
MsgBox(CStr(findElement(Of Integer)(integerArray, integerSearch)))
MsgBox(CStr(findElement(Of Date)(dateArray, dateSearch)))
End Sub
Önceki çağrı MsgBox "0", "1" ve "-1" sırasıyla görüntülenir.
Ayrıca bkz.
Görevler
Nasıl yapılır: Genel Bir Sınıf Kullanma (Visual Basic)
Başvuru
Parametre Listesi (Visual Basic)