2011-02-09 13 views
3

C#では、オブジェクトが固定されたキーワードを使用して現在格納されている場所に簡単に固定できます。これは、F#でF#のガベージコレクタによってオブジェクトが移動されないようにする

unsafe static void TestMethod() 
{ 

    // assume class Point { public int x, y; } 
    // pt is a managed variable, subject to garbage collection. 
    Point pt = new Point(); 

    // Using fixed allows the address of pt members to be 
    // taken, and "pins" pt so it isn't relocated. 

    fixed (int* p = &pt.x) 
    { 
     *p = 1; 
    }   

} 

を行うことができます方法:ここでMSDNからの例はありますか?

+2

をピン止めタイプGCHandleを使用することができます - ポイントどうなりますか? - またはアンマネージコードと対話していますか? – Massif

+0

バッファを操作するためにNativePtrモジュールを使用しています。まず、次のようなブロック配列を作成します: 'let structureElement:byte [、] = Array2D.create 5 5 0uy'。次に、この配列へのポインタを取得します。 'let pStructElem = && structureElement。[0,0]' –

答えて

10

あなたはF#がまったく似て「安全でない」モードを持っていないことを考えると

関連する問題