2012-02-09 15 views
4

奇妙な問題...共分散3.5/2.0でもですか?

Iveは例と共分散を実装しています。

ターゲットFWは4.0です。

どのように。私はそれが3.5/2で失敗するかどうかを見たいと思っていましたが、それはありませんでした。

共分散はFW4.0からではありません。

enter image description here

enter image description here

+0

4.0コンパイラではなく、コンパイラのフレームワーク2.0(3.5)バージョンを使用してみてください。 –

+0

@TetsujinnoOniはターゲットFWを変更するのではなく、指定されたターゲットで作業していますか? –

+0

Common Language RuntimeとC#コンパイラ(csc.exe)は別々の2つのものです。共分散とContravarianceはバージョン2.0でCLRに導入されました。バージョン4まではC#には導入されていませんでした。バージョン3のILをビルドするためにコンパイラ4を使用しています。 –

答えて

4

共分散は、フレームワーク3にサポートされていますが、中に実装されていなかった(+文句を言わないランタイムで失敗):

enter image description here

3.0に変更した後、私はビルドと見ますコンパイラ。あなたはさらに,:コモンを明確にするために..私はそれを見つけることができれば、私は参照してくださいよ、

EDIT

をこれはエリックリペットのブログの記事に記載されているフレームワーク3.

をターゲットコンパイラ4を使用しています言語ランタイムとC#コンパイラ(csc.exe)は別々の2つのものです。共分散とContravarianceはバージョン2.0でCLRに導入されました。バージョン4まではC#には導入されていませんでした。バージョン3のILをビルドするためにコンパイラ4を使用しています。

+0

どうすれば失敗するのですか? –

+0

.NET 3.0または3.5コンパイラを使用します。 –

+0

fw4をアンインストールする必要がありますか?クリーンモード3.0で動作する設定はありますか? –

1

CLRは、バージョン2.0以降の共変および反変のジェネリック型パラメータをサポートしています。バージョン4まで文法を提供していないのはC#言語だけです。

+0

fw2でどのようにサポートできるのか分かりません。私が読んだところからは、4で紹介されました。 –

+0

C#を含むすべての.NET言語は、同じ中間言語、IL(CLRのアセンブラ言語のようなもの)に変換されます。現在、ILは多くの機能(共分散や反差別など)をサポートしていますが、すべての言語がそれらのすべてを使用する構文を提供するわけではありません。この機能を使用するためのC#の構文はバージョン4で追加されました。 – Botz3000

+0

私はそれを失敗させる方法はありませんか? (もし私が2.0用のcsc.exeを使用していても?)mylesの答えは? –

関連する問題