有没有更正确的方法来实现自己的目标?

维多克斯

我是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,但我觉得我正在为实际上已经存在的东西进行解决。感谢您的任何答复。

迈克·纳基斯(Mike Nakis)

您的第一种方法应该可以正常工作。

您说“我一直在努力解决的问题是这样的:”,但您没有告诉我们您需要解决的问题。如果您担心GrabbedEntity = null;可能将其设置Entities[3];为null,那么不会,如果您实际上已经尝试过,则应该知道不会。

至于第二种方法,即带有get{}和的方法set{},我不知道您要做什么,也不知道这种混乱的局面是如何实现的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有更有效的方法来实现这一目标?

有没有更好的方法来实现这一目标?

有没有更好/更有效的方法来实现这一目标?

有没有更好的方法来实现没有Javascript的CSS动画?

有没有更好的方法来实现这个没有多个获取请求?

有没有更好的方法来保留自己的自定义开源项目副本?

有没有更简单的方法来实现缺少的“ getNamedRange(....)”方法?

有没有更简洁的方法来实现多个模型的曲线拟合?

有没有更好的方法来实现此MATLAB代码?

有没有更好的方法来实现try..catch机制?

有没有更聪明的方法来实现用 Javascript 中的变量替换?

有没有更快的方法来实现这种“排名”算法?

有没有更清洁的方法来公开实现细节以进行测试?

有没有比使用sscanf更好的方法来实现此结果?

有没有更快的方法来实现此循环功能?

有没有一种好方法来实现扩展 onHover 的 div 交叉?

有没有更好的方法来实现数据列表?

有没有正确的方法来发现js中的非致命错误?

有没有一种“正确的”方法来避免“必须是最终的”错误?

有没有正确的方法来确定NSNumber是使用Swift从Bool派生的?

有没有简单的方法来检查内存?

有没有合适的方法来孵化 QLabel

有没有更好的方法来更新 PostgreSQL

有没有更好的方法来避免if / then / else?

有没有更好的方法来退出递归?

有没有更好的方法来兑现承诺?

有没有更好的方法来编辑PDF?

有没有更好的方法来计算重量

有没有更好的方法来移动窗口?