Skønt C# 3 efterhånden har været ude længe, hører jeg ofte spørgsmål vedrørende hvilke af de nye features, der kræver .NET 3.5. En del af forvirringen skyldes, at de enkelte komponenter har eget versionsnummer, hvilket er årsag til en del misforståelser. Jeg har forsøgt at redde trådene ud i dette indlæg, men i håb om at gøre det helt klart har jeg lavet nedenstående oversigt.
Hvis der står “Ja” i højre kolonne, kan man således tage en .NET applikation, der benytter den aktuelle feature og afvikle den på en maskine, der kun har .NET 2 installeret.
| C# 3 Feature | Fungerer på .NET 2 |
| Automatisk implementerede properties | Ja |
| Implicit erklærede lokalvariable | Ja |
| Udvidelsesmetoder | Nej* Udvidelsesmetoder kræver ExtensionAttribute, der er defineret i System.Core.dll, som er i .NET 3.5.
* se her |
| Lambda-udtryk | Ja |
| Object initializers | Ja |
| Array initializers | Ja |
| Implicit erklærede arrays | Ja |
| Partial methods | Ja |
| LINQ | Nej Kræver reference til System.Linq.dll, som er i .NET 3.5 |