0

私の質問はこれに似ていますが、古いバージョンの .NET で異なるバージョンの C# を使用できるかどうかを知りたいです。たとえば、ラムダ自体はフレームワークとは何の関係もなく、それは C# (および VB ですが、ここでは C# についてのみ話している) であるため、私の頭ではそれが可能であるに違いありません。

問題は、職場に VS 2005 しかなく、自宅の PC が壊れているため、これをテストできないことです。

では、VS 2010/2012 で .NET 2.0 プロジェクトを作成する場合、ラムダ/Linq などを使用できますか?

4

4 に答える 4

4

では、VS 2010/2012 で .NET 2.0 プロジェクトを作成する場合、lamda の / Linq などを使用できますか?

まさにこの種のページがあります。一部の機能はフレームワーク固有 (または CLR 固有) であり、一部はそうではありません。

たとえば、ラムダ式、匿名型、および自動的に実装されたプロパティを .NET 2.0 で問題なく使用できます。

LINQBridgeなどの代替実装を提供する場合は、LINQ to Objects を使用できます。他の LINQ プロバイダー (LINQ to SQL など) は、Mono のライブラリを使用して明らかに可能かもしれませんが、個人的には、可能であればフレームワークの新しいバージョンにアップグレードしたいと考えています。

C# 4 から動的型付けを使用することはできません。.NET 4 にのみ存在する型が必要であり、互換性のある方法でバックポートするのは簡単ではないと思います。(少なくとも.NET 3.5 用のバージョンの DLRがあったため、可能かもしれませんが、それが C# 4 コンパイラでうまく機能するかどうかは別の問題です。)

于 2012-10-01T08:48:15.240 に答える
1

ターゲット フレームワークを 2.0 に設定し、Visual Studio 2010 を使用する場合は、ラムダ式を使用できます。ただし、フレームワークは .Net 3.5 で導入されたため、そのままでは LINQ を使用できません。

次の記事が表示されます: Jon Skeet によるバージョンのもつれの解消

于 2012-10-01T08:46:33.070 に答える
0

言語とコンパイラがあり、CLR があります。CLR 2.0 で .NET 2.0、3.0、および 3.5 を実行できます。CLR 2.0 では .NET 4 機能を使用できません。

したがって、プロジェクトを .NET 3.5 に設定し、.NET 3.5 を搭載したマシンでコンパイルし、.NET 2.0 を搭載したマシンで実行できます。

于 2012-10-01T08:49:40.313 に答える
0

言語バージョンとフレームワーク バージョンは実際には結び付けられており、Visual Studio はプロジェクトの設定に応じて利用可能な機能も決定します。

.NET 2.0 プロジェクトの場合、LINQ は C# 3.0 ではなく C# 2.0 に関連付けられるため、LINQ を使用することはできません (これは拡張メソッドと同様に LINQ が導入されたときです)。

3.0 および 3.5 フレームワークは 2.0ランタイムを使用することに注意してください。

于 2012-10-01T08:47:54.260 に答える