Der Compiler erkennt nicht, dass in Zeile 3 ein Fehler auftritt:
IList xs = new List { new List { 2 } };
IList x0 = xs.First(); // does not compile, as expected
foreach (IList x in xs) { } // works, unexpectedly!
(Auch wenn kein Fehler vorliegt, schlägt Visual Studio in Zeile 3 vor, dass eine implizite Umwandlung vorliegt, die zur Laufzeit möglicherweise fehlschlägt.)
Interessanterweise erkennt der Compiler das Problem hier erfolgreich:
IList xs = new List { 2 };
string x0 = xs.First(); // does not compile, as expected
foreach (string x in xs) { } // also does not compile, as expected
Gibt es einen guten Grund, warum Zeile 3 nur einen Vorschlag und keinen Fehler gibt, wie in den Zeilen 2, 5 und 6?
Der C#-Compiler gibt keinen Fehler aus, wenn er sollte ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post