gpt4 book ai didi

c# - 有没有更正确的方法来实现我正在做的事情?

转载 作者:太空狗 更新时间:2023-10-30 01:15:08 27 4
gpt4 key购买 nike

我对 C# 和编码还很陌生,请原谅我的无知。我已经尝试过研究,看起来我想要找到的可能是 C++ 中称为“指针”的东西,但在 C# 中不可用?我想要一个字段或属性,我可以将列表中的一个对象分配为“选定对象”并进行操作,直到我“释放”它为止。我试过这个:

    Entity GrabbedEntity;

List<Entity> Entities;

if (mouseDown)
GrabbedEntity = Entities[3];

if (mouseUp)
GrabbedEntity = null;

我想要实现的基本上只是释放我分配给“grabbedEntity”的对象,而不是实际使“Entities[3]”成为空值,但我仍然希望能够修改 grabbedEntity 的值(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{} 的方法,我不知道您要做什么,也不知道这有多复杂困惑是为了完成它。

关于c# - 有没有更正确的方法来实现我正在做的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com