C# (CSharp) VersionSample.Csharp3 Namespace

Сlasses

Name Description
AnonymousTypeSample 匿名型も割とシンプルな構文糖衣の類。 クラスが1個自動生成されるだけ。 .NET 2.0 で問題なく動く。
AnonymousTypeSample.CompilerGeneratedAnonymousClassA
ApproxSameAsPoint
ExtensionMethodSample 拡張メソッドは、System.Runtime.CompilerServices.ExtensionAttribute が付いているだけの普通の静的メソッド。 この属性は、同名であれば自作のものでもよくて、.NET 2.0 ターゲットでも、自作さえすれば拡張メソッドが使える。
LinqToObjectSample LINQ to Objects は、要は System.Collections.Generic.IEnumerable{T} に対する拡張メソッドでしかないので、 .NET 3.0 の System.Linq.Enumerable と全く同じものを自作してしまえば、.NET 2.0 でも LINQ to Objects が使える。 System.Linq.Enumerable は実装難易度もそんなに高くないし、Mono のソースコードでも使えばコピペで済む(他のクラスへの依存も少ないのでほぼファイルのコピーで終わり)し、簡単。
PartialMethodSample 部分メソッドは、C# 2.0 以前で同じようなコードを書く手段はないけども、単純にコンパイラーの提供する機能で、ライブラリ非依存。 .NET 2.0 以前でも動く。
Point
SyntaxSugarSample 型推論、初期化子、ラムダ式などは、割かし単純な構文糖衣でライブラリ非依存。 当然、.NET 2.0 上で動く。 C# 2.0 相当のコードへの展開も割とシンプル。