Löste det genom att köra en
If myString.GetType().ToString().Equals("System.Int32")
Någon som vet något annat sätt ?
15 svar · 383 visningar · startad av erka
Hej!
Om jag har en sträng som jag vill omvandla till integer med
Convert.ToInt32(myString), och vill kolla om det gick att konvertera den, tex skickar jag in "asdasdjasdjjasd" i myString så vill jag kunna se att den inte gick att konvertera till en integer.
Finns det någon sådan funktion inbyggd eller måste man hacka den själv och isåfall hur :)
Tacksam
Löste det genom att köra en
If myString.GetType().ToString().Equals("System.Int32")
Någon som vet något annat sätt ?
Nu har jag märkt att det inte fungerade som jag ville, jag vill ju kolla om det går att konvertera till integer, om det går ska jag göra en sak och om det inte går ska jag göra en annan sak. Någon som har mer koll ?
try
{
int myInt=Convert.ToInt32(myString);
}
catch(System.FormatException e)
{
//Inte ett tal.
}
catch(System.Exception e)
{
//Nåt helt annat gick åt skogen.
}
typeof kanske?
På begäran:
Try
myInt=Convert.ToInt32(myString)
Catch exp As System.FormatException
'Inte ett tal.
Catch exp As System.Exception
'Nåt helt annat gick åt skogen.
End Try
Kanske inte en så dum idé iaf http://www.webforum.nu/showthread.php?s=&threadid=62623? :q
:e
Stort tack, om den innehåller en integer, hur kan jag få ut det då? Typ som en ifsats
Dim strString As String = "3"
Try
Dim myInt As Integer = Convert.ToInt32(strString)
Catch exp As System.FormatException
'Inte ett tal
Response.Redirect("InteEttTal.aspx")
Catch exp As System.Exception
'Ett tal
Response.Redirect("EttTal.aspx")
End Try
ni förstår vad jag menar
Dim strString As String = "3"
Try
Dim myInt As Integer = Convert.ToInt32(strString)
'Det [b]var[/b] ett tal vi fortsätter exekveringen här.
Catch exp As System.FormatException
'Inte var [b]inte[/b] ett tal vi vidtar åtgärder.
Catch exp As System.Exception
'Nåt helt annat gick åt skogen. Vi vidtar andra åtgärder.
End Try
Alternativt:
Dim strString As String = "3"
Dim DetVarEttTal As Boolean = false
Try
Dim myInt As Integer = Convert.ToInt32(strString)
DetVarEttTal = true
Catch exp As System.FormatException
Catch exp As System.Exception
End Try
if DetVarEttTal then
'Gör nåt.
else
'Gör nåt annat.
end if
Tack niko
Upptäckte själv samma problem med att kolla om en variabel var av önskad datatyp och stötte på problem så jag slängde ihop nedanstående (finns visserligen i Microsoft.VisualBasic, men det skadar inte att skräddarsy ;))
'***************************************
'
' DataType class
'
' Kontrollerar datatypen på parameteter och retunerar sant/falskt
' om den är som önskad. isString() kontrollerar exempelvis om strängen
' är en sträng, isString("wee") kommer då att reuntera sant.
'
'***************************************
Public Class DataType
' Kontrollerar om värdet är en sträng.
Public Shared Function isString(Value As Object) As Boolean
Return _CheckDataType(Value, "System.String")
End Function
' Kontrollerar om värdet är datum/tid.
Public Shared Function isDateTime(Value As Object) As Boolean
Return _CheckDataType(Value, "System.DateTime")
End Function
' Kontrollerar om värdet är någon form utav tal.
Public Shared Function isInteger(Value As Object) As Boolean
If _CheckDataType(Value, "System.Int16") Or _
_CheckDataType(Value, "System.Int32") Or _
_CheckDataType(Value, "System.Int64") _
Then
Return True
End If
End Function
' Kontrollerar om värdet är null.
Public Shared Function isNull(Value As Object) As Boolean
Try
Dim a = Value.GetType()
Return False
Catch
Return True
End Try
End Function
' Utför kontrollerna.
Private Shared Function _CheckDataType(Value As Object, DataType As String) As Boolean
Try
If Value.GetType().ToString() = DataType Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
End Class
Används på följande sätt:
If DataType.isString("wee") Then
' Det är en sträng.
End If
If DataType.isInteger(3473) Then
' Det är ett tal (int16, int32 eller int64).
End If
Nice Pace, ska leka lite med den sen! Super
Bara ett helt annat sätt att kolla om en sträng är en integer.
Regex reg = new Regex(@"^[\d]{1,5}$");
if(!reg.Match("minsträngjaggvilllkolla").Success){
//fel meddelande
}