unsafe コードとポインタ (C# プログラミング ガイド)

更新 : 2007 年 11 月

型の安全性とセキュリティを維持するために、既定では C# はポインタ演算をサポートしません。ただし、unsafe キーワードを使用すると、ポインタを使用できる unsafe コンテキストを定義できます。ポインタの詳細については、「ポインタ型 (C# プログラミング ガイド)」を参照してください。

t2yzs44b.alert_note(ja-jp,VS.90).gifメモ :

共通言語ランタイム (CLR) では、アンセーフ コードは検査できないコードと呼ばれます。C# のアンセーフ コードは、必ずしも危険ではありません。ただ CLR で安全性を検査できないコードであるというだけです。そのため CLR は、完全に信頼できるアセンブリ内にある場合にのみ、アンセーフ コードを実行します。アンセーフ コードを使用する場合は、セキュリティ上のリスクやポインタ エラーが発生しないように注意してください。詳細については、「セキュリティ (C# プログラミング ガイド)」を参照してください。

アンセーフ コードの概要

アンセーフ コードには次の特性があります。

  • メソッド、型、およびコード ブロックは、unsafe として定義できます。

  • アンセーフ コードでアプリケーションのパフォーマンスが向上することがあります。これは、配列のバインド チェックが削除されるためです。

  • アンセーフ コードは、ポインタを必要とするネイティブ関数を呼び出すときに必要です。

  • アンセーフ コードを使用すると、セキュリティと安定性の面でリスクが高くなります。

  • C# でアンセーフ コードをコンパイルするには、/unsafe を指定してアプリケーションをコンパイルする必要があります。

関連項目

詳細については、次のトピックを参照してください。

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 18 アンセーフ コード

  • B 3 アンセーフ コードのための文法

参照

概念

C# プログラミング ガイド