Hallo!
Verzweifle gerade beim verstehen einer Designer generierten Zeile zum konvertieren von string in short. Kann mir das mal jemand erklären?
new System.Nullable<short>(((short)(System.Convert.ChangeType (carKVP [carToolStripComboBox.SelectedIndex].Key, typeof(short)))))
carKBP ist vom Typ
using kvp = System.Collections.Generic.KeyValuePair<string, string>;
Kann man diese Konvertierung von string zu short nicht irgendwie einfacher und kürzer schreiben?
Danke im Voraus!
sp00ky
Short.Parse oder Short.TryParse
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo sp00ky
Convert.ChangeType() benutzt intern die Methode ToXYZ von IConvertible.
Diese benutzt dann die Methode Convert.ToXYZ und diese wiederum intern XYZ.Parse().
Ich denke der Designer nutzt Convert.ChangeType() um generisch zu bleiben.
Von Hand würde ich XYZ.TryParse() bzw. XYZ.Parse() nach einer Prüfung verwenden.
Vorallem wenn es auf die Geschwindigkeit ankommt. Ansonsten ist Convert.ChangeType() ganz nützlich und soviel langsamer ist die Methode gar nicht.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
N'abend Peter!
Wollte nochmal danke sagen für die Erklärung. Hat mir geholfen...
Gruß sp00ky
@Peter:
Sag mal weißt du die internen Sachen einfach so oder hast du schon alle internen .NET Assemblies einmal mit einem Reflector durchleuchtet? Oder schaust du je nach Frage dann konkret nach? Wenn ja, was benutzt du dafür? Den jetzt RedGate Reflector (ehemals Lutz Roeder?)[/color]
Hallo tkrasinger,
ich bin zwar nicht Peter, aber ich vermute mal, dass er es nicht viel anders macht als ich, also anlassbezogen mit dem RedGate Reflector nachgucken. Und wenn man ein paar Mal nachgeguckt hat, dann sind natürlich auch ein paar Sachen hängen geblieben, ohne dass man wieder neu nachgucken muss.
Außer dem RedGate Reflector gibt es noch die Möglichkeit im Originalquellcode nachzugucken, z.B. über den Mass Downloader ([gelöst] .NET source anschauen).
herbivore
Hallo zusammen
ich bin zwar nicht Peter, aber ich vermute mal, dass er es nicht viel anders macht als ich, also anlassbezogen mit dem RedGate Reflector nachgucken. Und wenn man ein paar Mal nachgeguckt hat, dann sind natürlich auch ein paar Sachen hängen geblieben, ohne dass man wieder neu nachgucken muss.
Ganz genau so 😃
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Danke für die Info an beide, dann lag ich ja eh ned daneben.