【发布时间】:2018-06-02 06:16:01
【问题描述】:
我有一个 RectangleF 列表。我有一个非静态类,它需要引用此列表中的元素。 我正在尝试使用指针:
Item f = new Item();
unsafe
{
f.linkedCollider = &Collisions.items.Last();
}
但是,这会产生编译器错误:
无法获取给定表达式的地址
有没有办法解决这个问题?
【问题讨论】:
-
如果您希望能够保留对列表中项目的引用,那么有一个引用类型列表,而不是值类型。使用指针不会导致有效的解决方案。这是假设您需要对项目的引用,而您可能不需要。
-
使用指针是一个非常糟糕的主意。创建一个类似于
RectangleF的类,并使用引用语义。 -
您可以使用 C# 7.0 ref 返回。但也许您应该解释一下您要解决的问题,看起来像是 xy 问题。
标签: c# arrays list pointers memory