我有一个RectangleF列表。我有一个非静态类,需要引用此列表中的元素。我正在尝试使用指针:
Item f = new Item();
unsafe
{
f.linkedCollider = &Collisions.items.Last();
}
但是,这会产生编译器错误:
无法获取给定表达式的地址
有没有办法解决这个问题?
没有办法绕过这个:与C和C ++中的对应物不同,C#中的运算符&
的地址是非常严格的:it can be applied only to variables:
address-of运算符只能应用于变量。如果变量是可移动变量,则可以使用
fixed
语句在获取其地址之前临时修复变量。
您收到错误消息,因为方法调用不是变量。
由于C#引用的行为类似于智能指针而不需要指针语法,因此在大多数需要间接的情况下都可以避免使用指针。