What are the C# 3.0 language features we can use in an application that targets .Net 2.0 framework ?
PS:I know few like Lambda expressions and var
keyword
What are the C# 3.0 language features we can use in an application that targets .Net 2.0 framework ?
PS:I know few like Lambda expressions and var
keyword
I have an article on this very topic.
In brief:
Supported:
Partially supported:
Not supported:
In fact, I have heard that conversion into expression trees is available with the aid of Mono's implementation of System.Core
. I haven't tried it yet though... I keep meaning to do so (and then update the page).
Please see here:
Using C# 3.0 (.Net 3.5) syntax in a .Net 2.0 application
For a complete run down of what you can and can't do when targeting the .NET 2.0 Framework and using C# 3.0.
In summary:
Extension methods sort-of work, however, they require "System.Runtime.CompilerServices.ExtensionAttribute" in order to work, and this type is found within the System.Core DLL (which is not strictly part of the .NET 2.0 framework).
Query Syntax cannot be used "out of the box" so-to-speak, however, it can be used if a 3rd party DLL (like LINQBridge) is used. This DLL effectively re-implements many of the "missing" types that you need to perform LINQ when targeting the .NET 2.0 framework. It also implements the "ExtensionAttribute" type needed for Extension methods to work, so simply adding/referencing the LINQBridge DLL from your project will enable LINQ, Query Syntax/Expressions and Extension Methods!