Wenn ich eine foreach
Schleife in C# verwende, scheint es, dass keine Kompilierzeit Typprüfung durchgeführt wird, wenn der Elementtyp ein Schnittstellentyp ist.Warum überspringt foreach die Überprüfung der Kompilierzeit für Schnittstellentypen?
z.
Dies wird gerne kompilieren und eine Ausnahme zur Laufzeit verursachen, wenn es bei der Kompilierung klar ist, macht dies keinen Sinn. Wenn ich den Elementtyp aus SomeInterface
in einer anderen Klasse zu ändern, kompiliert dann Zeit Typprüfung gestellt wird:
IEnumerable<SomeClass> stuff;
foreach(Random obj in stuff) { // This doesn't compile - good!
}
Warum gibt es keine Kompilierung Typüberprüfungen Zeit, wenn der Elementtyp eine Schnittstelle?
(Dies geschieht mit .NET 3.5 SP1 in Visual Studio 2008)
Ja, ich habe mich gefragt, über (und gebissen worden), um die gleiche Sache. Ich freue mich auf die Antworten von denen, die Bescheid wissen! – Eyvind