首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >封装数组,我应该深拷贝吗?

问封装数组,我应该深拷贝吗?
EN

Stack Overflow用户
提问于 2022-02-05 16:56:33
回答 1查看 69关注 0票数 0

类具有私有数组/列表。它的封装只允许通过"AddElement“之类的方法进行编辑。

现在,另一个类需要有关该数组/列表的所有元素的信息。

传递数组/列表的引用将破坏封装。返回一个新的数组/列表,但是使用相同的对象,仍然允许对对象进行操作。创建一个深拷贝感觉有点过火了。有更好的办法吗?

举个例子:在游戏中,我有多个单位。要在地图上放置标记,渲染器需要单元的位置和单元类型。渲染器不能改变单位的各种属性。

我在C#做这件事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-05 22:53:59

创建一个只公开所需信息的新方法。类似于:

代码语言:javascript
复制
public (Point Position, string UnitType) GetUnitInfo()
{
    return _units.Select(u => (u.Position, u.UnitType));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71000156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档