/ / Konwertuj ciąg na liczbę całkowitą i otrzymaj zero równe 0 - vb.net, konwersja typów

Konwertuj łańcuch na liczbę całkowitą i uzyskaj zero równe 0 - vb.net, konwersja typu

Czy mogę wiedzieć, że istnieje prosty sposób na wykonanie tego? Wystąpi błąd, gdy a. Tekst jest pusty. Jeśli nie wykrywam jeden po drugim, czy za pomocą prostego kodu mogę przekonwertować tekst. Tekst na zero?

Dim count1 As Integer = 0
count1 = Convert.ToInt32(a.Text) + Convert.ToInt32(b.Text) + Convert.ToInt32(c.Text)
txt_display.Text = count1

Mam inną metodę, którą lubię poniżej, aby wykryć jedną po drugiej.

if a.Text = "" Then
a.Text = 0
End If

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz wykryć jeden po drugim. Lepszym sposobem będzie stworzenie własnej funkcji. Spróbuj poniżej.

Dim count1 As Integer = 0
count1 = ConvertToInteger(a.Text) + ConvertToInteger(b.Text) + ConvertToInteger(c.Text)
txt_display.Text = count1




Private Function ConvertToInteger(ByRef value As String) As Integer
If String.IsNullOrEmpty(value) Then
value = "0"
End If
Return Convert.ToInt32(value)
End Function

1 dla odpowiedzi nr 2

Przykład:

If String.IsNullOrEmpty(a.Text) Then
a.Text = "0"
End If

1 dla odpowiedzi nr 3

Jeśli Twoim celem jest zsumowanie wartości w polach tekstowych i zignorowanie pól tekstowych, których nie można przekonwertować na liczby całkowite, możesz po prostu użyć Int32.TryParse.
Ustawi zmienną na 0, jeśli tekst nie będzie mógł zostać przekonwertowany na liczbę całkowitą bez zgłaszania wyjątków.

" In place of your textboxes
Dim x1 As String = "2"
Dim x2 As String = Nothing
Dim x3 As String = "5"

Dim a, b, c As Integer

Int32.TryParse(x1, a)
Int32.TryParse(x2, b)
Int32.TryParse(x3, c)

Dim result = a + b + c
Console.WriteLine(result)

Zamiast tego, jeśli chcesz napisać ciąg „0” w tekście pola tekstowego, aby zasygnalizować swojemu użytkownikowi błędne dane wejściowe, musisz sprawdzać pola tekstowe jeden po drugim, ponownie używając Int32.TryParse

Dim value1 as Integer
if Not Int32.TryParse(a.Text, value1) Then
a.Text = "0"
End If

" Here the variable value1 contains the converted value or zero.
" repeat for the other textboxes involved

1 dla odpowiedzi nr 4

Inne podejście przy użyciu If Operator:

Dim count1 As Integer = 0
count1 = If(String.IsNullOrEmpty(a.Text), 0, Convert.ToInt32(a.Text)) + If(String.IsNullOrEmpty(b.Text), 0, Convert.ToInt32(b.Text)) + If(String.IsNullOrEmpty(c.Text), 0, Convert.ToInt32(c.Text))
txt_display.Text = count1