.NET 2.0 に向けて

少なくとも、ソースコード互換性ができる限りとりたいわけで、#if とかで判別できる手段はないのだろうか?と軽くヘルプを流してみましたが、発見できませんでした。
C# の #if では論理式しか書けないので、Delphi 6 以前のような論理式になるのでしょうか...イヤだなぁ

昔の Delphi っぽく書くと、

#region define VERSION

#if CSVER10
#define CSVER10orLATER
#if CSVER12
#define CSVER12orLATER
#if CSVER20
#define CSVER20orLATER
#endif
#endif
#endif

#endregion

public class MyXXX : ICloneable,
#if CSVER20orLATER
  IComparable
#else
  IComparable
#endif
{
  ...
}

とかですか? しかも Delphi みたいに INCLUDE 指令がないから全ソースコードの先頭にコレを挿入して、メンテするの?