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 相当のコードへの展開も割とシンプル。 |