Pointer を使う

123

C# で unsafe の設定をして、int 型の Pointer を使います。
C# でポインタを使うときは unsafe の設定が必要です。

プログラムの説明

  1. Pointer は一歩間違えればシステム領域を破壊しかねません。
    C++ では普通に使っていた機能ですが、C# では特別な設定(unsafe)をして覚悟の上で使います。
    厳重に管理されていると言うことは、なるべく使わないのがルールのようです。
    とは言え C++ に慣れ親しんだ私などは、すぐ使いたくなるのですが。 (^_^;)
  2. 空のプロジェクトから Pointer を使ったプロジェクトを構築します。
    unsafe の設定画像
  3. Pointer の使い方は C++ と同じです。
    * p には、int型領域のアドレス(ポインタ)が格納されます。
    int i=123;
    int * p = &i;
    * p が指し示す領域の値(123) をコンソールに表示します。
    Console.WriteLine(*p);
  4. ソースコードです。
    Main() 関数の頭に unsafe を記述しています。
    /***********************************/
    /*★ int 型のポインタ    前田 稔 ★*/
    /***********************************/
    using System;
    
    class Pointer
    {   unsafe public static void Main()
        {
            int i=123;
            int * p = &i;
            Console.WriteLine(*p);
            Console.ReadLine();
        }
    }
    
  5. CLI の環境で Pointer を使うときは /unsafe スイッチを指定してコンパイルします。
    Pointer を使っている DotM.cs をコンパイルするコマンドです。
    C:\DATA\C#\CLI>csc /unsafe DotM.cs Dialog.cs
    
    DotM.cs では Dialog.cs を組み込んでいます。
        //★ Dialog Class
        class MyDialog : Form
        {
            ・・・
        }
    
            MyDialog Mydlg = new MyDialog();
    

超初心者のプログラム入門(C# Frame Work)