今晩いくつかのコードをテストする際に、私は素朴にダブルキャストを試してaをに変換しList
ましたIQueryable
(注:私は知ってい.AsQueryable()
ます、質問全体を読んでください):
var data = (IQueryable<MyType>)(List<MyType>)Application["MyData"];
それが有効かどうかは考えていませんでしたが、Visual Studioにエラーがなく、エラーなしでコードをコンパイルできたので、うまくいくと思いました。しかし、Webアプリケーションを公開してページを表示した後、次のエラーが発生しました(予想どおり)。
タイプ'System.Collections.Generic.List`1[MyType]'のオブジェクトをタイプ'System.Linq.IQueryable`1[MyType]'にキャストできません。
Application["MyData"]
コンパイル時にのタイプは不明ですが、からList<MyType>
にキャストしようとしていることIQueryable<MyType>
は不明ですが、これは無効です。この場合、コンパイラエラーが発生しないのはなぜですか?