class A
{
public int a;
public int c;
}
我将从A创建10个实例。然后我将再次从A创建15个实例...继续。前10个实例将具有相同的变量值,接下来的15个实例将具有相同的a值。但我并不是说两个组都具有相同的值.Problem在第一组中创建相同的值10次和15第二组记忆中的时间不必要。
在这种情况下,减少不必要数据的最佳解决方案或解决方案是什么?
答案 0 :(得分:0)
如果a
和c
实际上只是整数,则不值得花时间尝试将它们优化出内存空间;在大多数情况下,任何你用来做的事情都会占用比整数本身更多的空间。
但是,如果a
和c
实际上是占用大量内存的对象,则可以将对象指针(或持有者,取决于语言)作为{{1的成员而不是对象本身。这样就是指针中唯一重复的内存。
答案 1 :(得分:0)
很明显静态成员不能解决这个问题。因为实例组会有不同的值。
这可能是解决方案之一。其他什么可以?
class Common
{
public int a;
}
class A
{
public Common a;
public int c;
}
答案 2 :(得分:0)
HashSet<T>
会有帮助吗?
答案 3 :(得分:0)
另一种解决方案是
class A
{
public int? a;
public int c;
}
但不是创建新的int实例?我们应该分配相同的实例。但是铸造int? to int将难以使用并导致性能问题。