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