unsafe コードとポインター (C# プログラミング ガイド)
型の安全性とセキュリティを維持するために、既定では C# はポインター演算をサポートしません。 ただし、unsafe キーワードを使用すると、ポインターを使用できる unsafe コンテキストを定義できます。 ポインターの詳細については、「ポインター型 (C# プログラミング ガイド)」を参照してください。
注意
共通言語ランタイム (CLR) では、アンセーフ コードは検査できないコードと呼ばれます。 C# のアンセーフ コードは、必ずしも危険ではありません。ただ CLR で安全性を検査できないコードであるというだけです。 そのため CLR は、完全に信頼できるアセンブリ内にある場合にのみ、アンセーフ コードを実行します。 アンセーフ コードを使用する場合は、セキュリティ上のリスクやポインター エラーが発生しないように注意してください。
アンセーフ コードの概要
アンセーフ コードには次の特性があります。
メソッド、型、およびコード ブロックは、unsafe として定義できます。
アンセーフ コードでアプリケーションのパフォーマンスが向上することがあります。これは、配列のバインド チェックが削除されるためです。
アンセーフ コードは、ポインターを必要とするネイティブ関数を呼び出すときに必要です。
アンセーフ コードを使用すると、セキュリティと安定性の面でリスクが高くなります。
C# でアンセーフ コードをコンパイルするには、/unsafe を指定してアプリケーションをコンパイルする必要があります。
関連項目
詳細については、次のトピックを参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。