public IList A23 { get; set; }
s.A23 = new List<int>(new int[] { 62, 63, 64 });
IList g = s.A23;
double d = (double)g[0];
Die Doppelbesetzung in der letzten Zeile löst eine Ausnahme aus. g [0] sollte ein Objekt (eines int) sein, das zu einem Double castbar ist.Sollte das nicht funktionieren? (typecast/unboxing)
Ich weiß, dass dies funktioniert:
double d = (double)(int)g[0];
Aber das ist nicht meine Frage :). Ich arbeite an einer Laufzeit-Sache, die den Rahmen dieses Beitrags sprengen würde. Da die Quelle eine IList ist, kenne ich den Typ nicht, der dort ist. Ich hätte gedacht, der Compiler könnte das Objekt ohne Unboxing als Int zuerst werfen ??
Das ist eine plausible Vermutung, aber nicht ganz richtig. Die Mehrdeutigkeit ist hier nicht das eigentliche Problem. –
Ja, als ich sagte "** darf mich entschieden haben" habe ich geraten :) – pid
Sehen Sie, ob Sie und SledgeHammer den eigentlichen Grund für die Einschränkung ausarbeiten können, dass eine Unbox den eigentlichen Typ entpacken muss. (Oder nullable.) –