Konvertieren Von Zeichenfolgen.Leer Nichts/Null
Gibt es eine .Net-Funktion, die das tut. Ich denke, wenn gibt es nicht ich habe meine eigene Methode.
Die Sache ist, ich habe eine Funktion. Es Ganzzahlen. Wenn Sie geben Sie eine 0 ganze Zahl oder einen null-Wert, es funktioniert immer noch. Problem ist, dass der Wert eine leere textbox ist ein String.Der leere Wert ist.
Möchte ich nicht verwenden wenn. Ich meine, es könnte, aber es ist viel schöner, wenn ich einfach meine Funktion wie folgt
MyFunction(txtTextbox.Text)
Aber es wird nicht funktionieren, weil es kann nicht konvertieren Sie die Zeichenfolge.leer eine ganze Zahl.
Diese Frage ist verwirrend. Ist
Warum nicht? Es Ganzzahlen, aber wenn Sie eine Zeichenfolge übergeben, die es werden sollten, implizit sowieso. Meinefunktion("200") - funktioniert.
Was ist, wenn die Anzahl vertreten in der Zeichenfolge ist zu groß, um in ein integer? Was ist, wenn der string stellt eine Fließkommazahl? Was ist, wenn der string nicht numerisch? Dies sind alle Fälle, die Sie behandeln soll, und eine saubere Art und Weise zu tun, ist es richtig, die Umwandlung der string-Werte in ganzen zahlen vorher.
MyFunction
das gleiche wie die Funktion, die Sie finden Sie im zweiten Absatz? Es scheint nicht, wie es sein kann, da Sie eindeutig bestimmt sind, Durchlaufen eine string
es nicht "eine 0 ganze Zahl oder null". Falls Sie sich nicht bewusst sind, können Sie nicht nur pass ein string
um eine Funktion zu akzeptieren int
oder int?
.Warum nicht? Es Ganzzahlen, aber wenn Sie eine Zeichenfolge übergeben, die es werden sollten, implizit sowieso. Meinefunktion("200") - funktioniert.
Was ist, wenn die Anzahl vertreten in der Zeichenfolge ist zu groß, um in ein integer? Was ist, wenn der string stellt eine Fließkommazahl? Was ist, wenn der string nicht numerisch? Dies sind alle Fälle, die Sie behandeln soll, und eine saubere Art und Weise zu tun, ist es richtig, die Umwandlung der string-Werte in ganzen zahlen vorher.
InformationsquelleAutor Tomasi | 2010-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie müssen:
oder
if(...) return 0;
. Auch alle Methoden, welche eineout
muss der parameter einen Wert zuweisen, bevor Sie es zurückgibt. Soval
wird immer initialisiert werden, gibt es keine Notwendigkeit, es wieder zu tun. ( die=0
Teil.)Danke für die Hinweise.
Du bist herzlich willkommen.
InformationsquelleAutor Fitzchak Yitzchaki
Was über, äh, akzeptiert eine Ganzzahl, die in Ihrer Funktion, die sollte Lesen Ganzzahlen und verwenden Sie
int.Parse
oderint.TryParse
auf den string vorher?InformationsquelleAutor zneak
Nur aus einer anderen Perspektive, ich gehe davon aus, dass deine textbox wird auch erlauben müssen, nur numerische eingegeben werden. Ansonsten einfach Handhabung null nicht gehen, um Kugel-Beweis-gegen jemanden, der Eingabe nicht numerisch ist. Es muss entweder einige maskings, event-handler oder-Validierung, die Sie erstellt haben. Wie zu erstellen Ihre eigenen NumTextBox, dass Erben von TextBox mit der Eingabe-Einschränkung Verhaltensweisen, die Sie schon hatten und entweder überschreiben der Text-Eigenschaft, oder erstellen Sie eine neue Eigenschaft ruft den Wert, die sieht nach all den Umbauten und geben den entsprechenden Wert zurück konsequent durch Ihr system.
Oder eine maskierte textbox bereits die Grenzen der Eingabewerte
Im ernst, übertrieben. Können Sie eine Prüfung auf eine "normale" textbox viel einfacher, als dass Ihre eigene Unterklasse und versuchen, zu verwenden.
Wie ich schon sagte, nur eine andere Perspektive. Für eine verwendet, es ist übertrieben, aber wenn das gleiche Verhalten von einem erwartet wird überall in der Anwendung der Abstraktion und Kapselung von Vorteil sein wird
InformationsquelleAutor Fadrian Sudaman
versuchen, diese
Es wird davon ausgegangen, dass eine leere Zeichenfolge ist das gleiche wie 0.
InformationsquelleAutor Michael Fitzpatrick
Haben Sie sah in mit einem NumericUpDown (spin control)? Es hat eine .Wert Mitglied (immer ein Gültiger Integer ist!) anstatt die Konvertierung von String. Sie können begrenzen die oberen und unteren Werte, sowie ein Standard.
InformationsquelleAutor Coderer
Ich würde nur die Verwendung einer inline-IF-Anweisung (VB):
InformationsquelleAutor Losbear