まず、はい、私はこれらの投稿を見ました:
OSバージョンに基づく条件付きコンパイルシンボルを
C#のフレームワークバージョンに応じて条件付き
コンパイルする簡単な方法はあり
ますが、それらは私が探している方向を対象としていません。
私が具体的に探しているのは、OSバージョンによる変数_type_修飾です。
public struct REPASTESPECIAL
{
UInt32 dwAspect;
#if WINVER >= 6.0
UIntPtr dwParam;
#else
UInt32 dwParam;
#endif
}
私はこのようなものに戻りたくありません:
public struct REPASTESPECIAL<T>
{
UInt32 dwAspect;
T dwParam;
}
// return type by OS version
public static Type GetRePasteSpecial_ParamType()
{
if (Environment.OSVersion.Version.Major >= 5) return typeof(IntPtr);
else return typeof(UInt32);
}
...これにより、プログラマーは、dwParamをIntPtrまたはUInt32オブジェクトのみにしたい場合に、タイプTの任意のオブジェクトを使用できますが、そうする必要がある場合は、これを参照して、同じものを探している他のユーザーを参照してください。