C#3.0への追加機能なら

id:akiramei:20070731:1185893972 より、

__FILE__とか__LINE__とか__FUNCTION__が欲しいのですが。
StackFrameは、デバッグ版でないとファイル名や行番号が取れないし・・・

確かに欲しい。でも、結局のところこれらはデバッグ用であって、デバッグ版でしか使わないんですよね。
もちろん、これらが実装された場合には定数として埋め込まれるであろうことと比較して、StackFrame のインスタンス生成が非常に重たく、頻繁に呼び出されるメソッドでの利用は工夫をしないと実用に耐えないとか、リリースビルドでトレースしたい要求があることも現実ですけども。

個人的には Mono で mcs と csc 用のコードを書き分けられるような、コンパイル環境を判断できるものも欲しいですね。

#if CSC10 // C# 1.0 仕様

...codes...

#elif CSC11 // C# 1.1 仕様

...codes...

#elif CSC20 // C# 2.0 仕様

...codes...

#endif

いくつかのメソッドが追加されているだけだったり、実装が数十行違うだけな CLR 1.1 と CLR 2.0 のコードとか、そこらじゅうにありませんか?
# 当然、自分でこのような定義を追加してやりくりすればいいだけなのですが