C# String in nullable int (int?) konvertieren

palaber

Captain
Registriert
Juni 2006
Beiträge
3.856
Hi, ich suche etwas, um eine Textbox entweder mit Werten (int) oder mit "null" zu fuellen.

Aktuell mach ich das so:
Code:
//textbox = convert.toInt32(arrayElement):
nF.Limit1 = Convert.ToInt32(arrX[3]):

Hier schreibt er mir dann natuerlich eine "0" in die Textbox und nicht "null" - also leerer String. Gibt es da was von .Net oder muss ich hier ne Methode basteln?

Die Suche im Netz hat mir leider nur etwas mit Methoden aufgezeigt, die ich selber erstellen muss.
Sowas wie Convert.ToInt32? oder (int?) funktioniert nicht.

Vielen Dank schon mal!
 
eine textbox hat die property "Text"..

diese property nimmt einen stringentgegen, keine integer oder sonstige werte.

textBox1.Text = "4";


willst die textbox leeren, leere die .Text property..


textBox1.Text = null;
 
Naja, das war nicht ganz das, was ich hoeren wollte.

ich habe es jetzt doch selber geschrieben, war gar kein grosses Ding. Falls jemand auch mal eine Method braucht um eine Textbox mit Werten/ zahlen zu fuellen, oder mit "Null" kann er es in etwa so machen. (Achtung bei mir ist bereits sichergestellt, dass das Arrayelement ein Integer ist!

Code:
//Textbox = Klassenname.Methodenname(ArrayElement)
nF.Limit1LF = ChangeString.convertToNullableInt(Array[1]);

Class: ChangeString
Code:
public static int? convertToNullableInt (string s)
{
    int? iTmp = null;
    of (s == null)
    {
        return iTmp;
    }
   
    else { iTmp = Convert.ToInt32(s); return iTmp}
}
 
palaber schrieb:
Naja, das war nicht ganz das, was ich hoeren wollte.

ich habe es jetzt doch selber geschrieben, war gar kein grosses Ding. Falls jemand auch mal eine Method braucht um eine Textbox mit Werten/ zahlen zu fuellen, oder mit "Null" kann er es in etwa so machen. (Achtung bei mir ist bereits sichergestellt, dass das Arrayelement ein Integer ist!

Code:
//Textbox = Klassenname.Methodenname(ArrayElement)
nF.Limit1LF = ChangeString.convertToNullableInt(Array[1]);

Class: ChangeString
Code:
public static int? convertToNullableInt (string s)
{
    int? iTmp = null;
    of (s == null)
    {
        return iTmp;
    }
   
    else { iTmp = Convert.ToInt32(s); return iTmp}
}

Deine Methode ist fehlerhaft, weil du mal wieder den gleichen Fehler wie in deinem anderen Post machst. K.A. wer es dir gesagt hat, aber wenn du einen String auf Inhalt prüfen möchtest, dann benutze String.IsNullOrEmpty.

Code:
textbox.Text = string.IsNullOrEmpty( str ) ? string.Empty : Convert.ToInt32( str );

Obiger Code prüft nicht, ob str nur Zahlen enthält. Irgendwo in meiner letzten Antwort (anderer Thread) habe ich dir aber schon zur MaskedTextBox Control geraten ;)
 
aber wenn du einen String auf Inhalt prüfen möchtest, dann benutze String.IsNullOrEmpty

ich gehe aber mal davon aus, dass String.IsNullOrEmpty intern auch nur etwa so umgesetzt wird:

public bool IsNullOrEmpty(string s)
{
if (s == "" || s == null)
return true;
else
return false;
}

ist ja keine zauberei dahinter :)
wenn er in seiner funktion also "if (s == "" || s == null)" verwendet, sollte die logik dahinter identisch zur String.IsNullOrEmpty funktion sein..
 
Laut Doku:
IsNullOrEmpty ist eine Hilfsmethode, mit der Sie gleichzeitig überprüfen können, ob ein String null ist oder dessen Wert Empty ist. Sie entspricht dem folgenden Code:
Code:
result = s == null || s == String.Empty;
Und zu String.Empty:
Der Wert dieses Feldes ist die Zeichenfolge "" mit der Länge 0.

In Anwendungscode wird dieses Feld am häufigsten in Zuweisungen verwendet, um eine Zeichenfolgenvariable in eine leere Zeichenfolge zu initialisieren. Um zu testen, ob der Wert einer Zeichenfolge null oder String.Empty ist, verwenden Sie die IsNullOrEmpty-Methode.
 
uNki schrieb:
wenn er in seiner funktion also "if (s == "" || s == null)" verwendet, sollte die logik dahinter identisch zur String.IsNullOrEmpty funktion sein..

Ja natürlich, aber das tut er ja nicht.
 
Zurück
Oben