试图创建指向列表元素的指针

问题描述 投票:0回答:1

我有一个RectangleF列表。我有一个非静态类,需要引用此列表中的元素。我正在尝试使用指针:

Item f = new Item();
unsafe
{
    f.linkedCollider = &Collisions.items.Last();
}

但是,这会产生编译器错误:

无法获取给定表达式的地址

有没有办法解决这个问题?

c# arrays list pointers memory
1个回答
0
投票

没有办法绕过这个:与C和C ++中的对应物不同,C#中的运算符&的地址是非常严格的:it can be applied only to variables

address-of运算符只能应用于变量。如果变量是可移动变量,则可以使用fixed语句在获取其地址之前临时修复变量。

您收到错误消息,因为方法调用不是变量。

由于C#引用的行为类似于智能指针而不需要指针语法,因此在大多数需要间接的情况下都可以避免使用指针。

© www.soinside.com 2019 - 2024. All rights reserved.