Show/Hide Toolbars

XSharp

Navigation: X# 示例

FIXED 示例

Scroll Prev Top Next More

 

新的 FIXED 修饰符和 BEGIN FIXED . END FIXED 关键字允许您告诉 .Net 运行时,您不希望垃圾收集器移动变量。

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

正如您所看到的,BEGIN FIXED 语句需要声明一个局部变量。该局部变量的内容(在上面的示例中为 CHAR PTR)将被排除在块内的垃圾回收之外。

 

请注意:
使用 FIXED 关键字和上述示例时应格外小心。.Net 中的字符串是不可变的。通常不应以这种方式操作字符串!