DerKleineImp hat folgendes geschrieben : |
Warum rätst du denn von der Convert-Klasse ab? Kannst du das in eine allgemeine Aussage fassen? |
In C# gibt es tolle Sprachmerkmale, um Konvertierungen durchzuführen. Die sind auch sehr gut durchdacht. Es gibt die impliziten Konvertierungen, die automatisch vonstatten gehen, z.B. von
byte in
int. Dabei gilt, dass die Daten vollständig erhalten bleiben und auch nicht in ein anderes Format, sondern nur in eine andere "Hülle" gebracht werden.
Bei expliziten Konvertierungen muss der Zieldatentyp mit angegeben werden (
byte deinByte = (byte)deinInteger). Dabei gilt: Die Daten werden auch nur in eine andere Hülle gesteckt, es kann aber sein, dass sie zu groß oder zu klein für diese Hülle sind. Daher können hier auch Ausnahmen auftreten.
Und dann gibt es noch Konvertierungen, bei denen Daten in andere Formate umgewandelt werden. Dazu gehören String-zu-Integer und Integer-zu-String-Konvertierungen. Sie verwenden spezielle Methoden, wie zum Beispiel
123.ToString() oder
int.Parse(deinInteger). Da bei letzterer Anweisung die Ausnahme
FormatException geworfen werden könnte, gibt es noch
TryParse bei der der Rückgabewert angibt, ob die Konvertierung erfolgreich war.
Du siehst also, dass Konvertierung nicht gleich Konvertierung ist und es sinnvoll ist, zu unterscheiden. Die Klasse
Convert macht diese Unterscheidung nicht und es wird dabei auch nicht deutlich, wie genau konvertiert wird und ob eine Ausnahme geworfen werden könnte.
DerKleineImp hat folgendes geschrieben : |
PS: Das ganze war übrigens dazu gedacht, die Quersumme einer Zahl zu erhalten. Meine Methode sieht dazu so aus:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| public int GetQuersumme(string txt) { for (int i = 0; i < txt.Length; i++) { Quersumme += int.Parse(txt[i].ToString()); } return Quersumme; } | |
Das könntest du mit ein wenig Mathematik auch ohne langsame String-Methoden machen. Kannst ja ein bisschen knobeln
