貧弱な言い回しを言い訳をしていますが、私はそれを説明する良い方法を見つけることができませんでした。コンパイル時に解決されないディレクティブはなぜですか?
私の理解では、C#はWORA言語です.MSILはアプリケーションが実際に実行されるまでコンパイルされないため、1台のマシンに書き込んで別のマシンに展開できます。
それでは、なぜそれがBitConverter.IsLittleEndian
がlike so定義されていることである。
#if BIGENDIAN
public static readonly bool IsLittleEndian /* = false*/;
#else
public static readonly bool IsLittleEndian = true;
#endif
BIGENDIAN
ここでは、それがコンパイル時に解決されますことを意味プリプロセッサディレクティブ、です。したがって、開発者のマシンがリトルエンディアンでターゲットがビッグエンディアンを使用している場合、はIsLittleEndian
となりますが、ターゲットマシンではtrue
と表示されますか?
'BIGENDIAN'はプリプロセッサシンボルであり、ディレクティブではありません。 '#if'が指令です。 –