.NET中是否存在指针?

Red*_*wan 9 .net c# pointers

我想知道.NET技术中是否存在指针.如果是,是否有任何C#指针示例?

请指导我.

Luk*_*keH 13

是的,他们确实存在......

他们使用的一个例子......


Guf*_*ffa 5

是的,指针存在.

引用实际上是指针,但它们在垃圾收集器知道它们的方式上是特殊的,并在它移动对象时更改它们.

指针可以用在不安全的代码中,但是你必须确保垃圾收集器不会移动你指向的东西.

例:

string x = "asdf";
unsafe {
  fixed (char* s = x) {
    char* p = s;
    for (int i = 0; i < 4; i++) {
      Console.WriteLine(*p);
      p++;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,您希望通过指针访问的托管对象必须通过使用该fixed命令来防止被移动,并且编译器将不允许您更改您获得的指针,因此如果您想要一个可更改的指针,那么复制它.

您需要在项目设置中启用不安全的代码才能使用该unsafe关键字.