Hallo und
Die Fehlermeldung ist doch klar: Ein String kennt unter NET keine ToInt32-Methode. (Ich glaube, das gab es noch nie.) Wenn du in die
SDK-Doku/MSDN schaust, dann stellst du fest:
ToInt32-Methode => das gibt es bei
Convert.ToInt32
String-Klasse => es gibt keine Methode, die aus einem String einen int macht
Es gibt mehrere Wege, um aus einem String, der einem Zahlwert entspricht, diese Zahl zu machen. Der einfache, aber schlechte Weg:
C#-Quelltext
1: 2:
| string s = "was auch immer"; int i = Convert.ToInt32(s); |
Ein etwas besserer Weg ist
Parse:
C#-Quelltext
Der beste Weg ist
TryParse, denn bei Fehleingaben führen beide Lösungen zum Absturz:
C#-Quelltext
1: 2:
| int i = 0; if (int.TryParse(s, out i)) ... |
Diese Verfahren gibt es auch für viele andere Konvertierungen, z.B. String zu double, decimal, DateTime.
Auch dabei lohnt sich ein Blick in
SDK-Doku/MSDN: Es gibt viele Überladungen dieser Methoden, die z.B. die Schreibweise von Zahlen und Dezimal-/Tausender-Trenner festlegen.
Gruß Jürgen
/Edit
Nun gut, Christian hat grundsätzlich recht: Auch IConvertible kennt ToInt32; String hat IConvertible implementiert. Ich kann mir aber nur sehr exotische Situationen vorstellen, wo man in der Praxis so arbeiten wird. Stattdessen werden (wie oben gesagt) viele direkte Methoden angeboten.