Ich habe eine Liste von Objekten (ihre Typen sind im Voraus unbekannt). Das folgende Beispiel zeigt fest codierte Werte, aber mein tatsächlicher Code füllt die Argumentliste auf, indem er aus einer CSV-Datei liest. Ich möchte dann diese Liste von Argumenten an eine typische Methode übergeben, die nach bestimmten Parametern fragt. Also wirke ich die Elemente wie gezeigt auf die erforderlichen Typen. Ich erhalte einen Fehler:Übergeben Sie eine Objektvariable an Methode - Angegebene Umwandlung ist ungültig
Specified cast is not valid
wenn die Methode zur Laufzeit aufgerufen wird. Wie soll ich das erreichen?
var args = new List<object>();
args.Add(5495);
args.Add("String1");
args.Add(10133);
args.Add("String2");
result = request.GetCustomer((long) args[0], (string) args[1], (int) args[2], (string) args[3]);
Der Fehler weist Sie speziell darauf hin, warum Sie die Besetzung nicht durchführen können, einschließlich des tatsächlichen Typs des Objekts und der Art, in die Sie es umsetzen möchten. Sie müssen das Objekt in den * tatsächlichen * Typ umwandeln, wenn es nicht zur Laufzeit fehlschlagen soll. – Servy
Nun, ein guter Anfang wäre ein Versuch Catch Block um diese und eine Zählung, so dass Sie sehen können, welche Zeile in Ihrem CSV ist der Schuldige. – Kell
@Kell Ein 'try' /' catch' Block würde das Problem nur verschleiern. Er kann den Fehler bereits sehen, er muss lediglich den Fehler in seinem Code beheben. – Servy