2010-10-25 13 views
18

VB.NET'te tür veri türünü nasıl karşılaştırabilirim? Kodum:VB.NET'te tür karşılaştırması

Private Function Equal(ByVal parameter As String, ByVal paramenterName As String, ByVal dataType As Type) As String 

    If dataType = String Then 
     return 1; 
    End If 

End Function 

Herhangi bir fikir? = ve her şey için Is Yedek

+0

Eğer farklı bir cevap seçebilir miyim görüyor musunuz? – thecoolmacdude

cevap

5

Kabul edilen yanıtın bir sözdizimi hatası var.

If dataType = GetType(String) Then 
    Return 1 
End If 

Ya

If dataType.Equals(GetType(String)) Then 
     Return 1 
End If 

Ya

If dataType Is GetType(String) Then 
    Return 1 
End If 

son yolu muhtemelen nesne ise bir özel durum olmaz çünkü kontrol etmenin en iyi yolu: İşte doğru çözümdür boş.

Ayrıca seçti seçilen cevap vb.net içinde söz dizimi hatası var olarak https://msdn.microsoft.com/en-us/library/system.object.gettype(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

25
If dataType = GetType(String) Then 
    return 1; 
End If 
+3

VS 2013 Express'te bunu denediğimde bir derleme hatası aldım - aşağıdaki tipte "GetType() isminin kullanılması benim için işe yaradı. –

+3

Merhaba Darin, çözümünüzün artık VB.NET'te geçerli olmadığı görünüyor. Kabul edilen cevap olarak, lütfen güncelleyebilmeniz için lütfen güncelleyebilir misiniz? – Sheridan

+0

Sözdizimi hatası. Yarı kolon içermemelidir ancak StackOverflow'un saçma kuralları, geçersiz bir cevapta bir karakteri düzenlemenize izin vermez. – thecoolmacdude

22
If datatype Is GetType(String) Then 
    'do something 
End If 

Bu muhtemelen VB bunu yapmak için en iyi yoldur

2

çalışır.

If dataType Is String Then 
    return 1 
End If 
+0

Denediğinde bunu derlediniz mi? – LarsTech

+0

Bu işe yaramayacak. İşleç işleç iki nesneyi karşılaştırdığından ve Dize bir nesne değil türden olduğundan, GetType (String) kullanmanız gerekir. – ohgodnotanotherone