Show/Hide Toolbars

XSharp

Navigation: X# Examples

FIXED Example

Scroll Prev Top Next More

The new FIXED modifier and BEGIN FIXED .. END FIXED keywords allow you to tell the .Net runtime that you do not want a variable to be moved by the Garbage collector.

UNSAFE FUNCTION Start AS VOID
  VAR s := "SDRS"
  BEGIN FIXED LOCAL p := s AS CHAR PTR
      VAR i := 0
      WHILE p[i] != 0
           p[i++]++
      END
  END FIXED
   Console.WriteLine(s)
   Console.Read()
  RETURN

As you can see the BEGIN FIXED statement requires a local variable declaration. The contents of this local (in the example above a CHAR PTR) will be excluded from garbage collection inside the block.

 

Please note:
The FIXED keyword and the example above should be used with extreme care. Strings in .Net are immutable. You normally should not manipulate strings this way !