Ich vergleiche 2 DLL, die ich nicht oft tun, und ich war verwirrt, wenn ich diese Linie sah:Warum wird diese Zeichenfolge in ein Objekt in der DLL umgewandelt?
myObj.ErrorString = (string) (object) num + (object) " file(s) failed to import. Run the Import Report for more information.";
num
ist ein int
, die zu einem string
dann zu einem object
gegossen wird. Meine hartcodierte Zeichenfolge wird in eine object
umgewandelt, um zu der num
Variablen, die in eine Zeichenfolge konvertiert wurde, "hinzugefügt" zu werden.
Warum "fügt" der Compiler eine string
und eine object
hinzu? Wäre es nicht sinnvoller, wenn es (string)(object)num + (string)"some text";
wäre?
Blick auf, wie String.Concat arbeitet; das könnte es für dich erklären; Auch dies ist ein gutes Beispiel, warum Sie bestimmte Dinge explizit umwandeln müssen, um Boxen usw. zu vermeiden. –
@TheBeardedLlama Wie würde das alles erklären, es macht keinen Sinn. Es hat keinen Sinn, so herumzuboxen, am Ende ist es nur myObj.ErrorString = num + "file (s) ...."; – Dispersia
Sie denken wie ein Mensch und nicht ein Computer: D – SQLMason