Laden...

komische Typkonvertierung von string in short

Erstellt von sp00ky vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.353 Views
S
sp00ky Themenstarter:in
80 Beiträge seit 2008
vor 14 Jahren
komische Typkonvertierung von string in short

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

3.971 Beiträge seit 2006
vor 14 Jahren

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...

5.941 Beiträge seit 2005
vor 14 Jahren

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

S
sp00ky Themenstarter:in
80 Beiträge seit 2008
vor 14 Jahren

N'abend Peter!

Wollte nochmal danke sagen für die Erklärung. Hat mir geholfen...

Gruß sp00ky

T
574 Beiträge seit 2008
vor 14 Jahren

@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]

49.485 Beiträge seit 2005
vor 14 Jahren

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

5.941 Beiträge seit 2005
vor 14 Jahren

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

T
574 Beiträge seit 2008
vor 14 Jahren

Danke für die Info an beide, dann lag ich ja eh ned daneben.