是的,指针存在.
引用实际上是指针,但它们在垃圾收集器知道它们的方式上是特殊的,并在它移动对象时更改它们.
指针可以用在不安全的代码中,但是你必须确保垃圾收集器不会移动你指向的东西.
例:
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关键字.
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |