我是C#和编码的新手,请原谅我的无知。我已经尝试研究,似乎我想找到的东西可能是C ++中的“指针”,但在C#中不可用?我想要一个字段或属性,可以将列表中的对象分配为“选定对象”,然后反复使用,直到“释放”它为止。我已经试过了:
Entity GrabbedEntity;
List<Entity> Entities;
if (mouseDown)
GrabbedEntity = Entities[3];
if (mouseUp)
GrabbedEntity = null;
我想要实现的基本上只是释放分配给“ grabbedEntity”的对象,而不是实际上使“ Entities [3]”为空值,尽管如此,我仍然希望能够修改grabpedEntity的值(mouseDown和= Entities [3]是为了简单起见,根据情况,它可以是列表中的任何对象)。我一直在努力解决的问题是这样的:
List<Entity> Entities;
List<Entity> _grabbedEntityList = new List<Entity>();
Entity GrabbedEntity
{
get
{
if (_grabbedEntityList.Count < 1) return null;
else return _grabbedEntityList[0];
}
set
{
if (value == null) _grabbedEntityList.Clear();
else
_grabbedEntityList.Clear();
_grabbedEntityList.Add(value);
}
}
}
这完全符合我的预期,我可以将“ GrabbedEntity”分配给“实体”列表中的对象,而分配该对象时,我可以做任何我想做的事,然后如果要释放它,则将其设置为null,但我觉得我正在为实际上已经存在的东西进行解决。感谢您的任何答复。
您的第一种方法应该可以正常工作。
您说“我一直在努力解决的问题是这样的:”,但您没有告诉我们您需要解决的问题。如果您担心GrabbedEntity = null;
可能将其设置Entities[3];
为null,那么不会,如果您实际上已经尝试过,则应该知道不会。
至于第二种方法,即带有get{}
和的方法set{}
,我不知道您要做什么,也不知道这种混乱的局面是如何实现的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句