【问题标题】:Which is a lighter object哪个是较轻的物体
【发布时间】:2009-09-11 17:46:00
【问题描述】:

我在这里很困惑。哪个是较轻的物体?是 orgWithNullImageCollection 还是 orgWithImageCollection ?在下面的代码中。或者它是更轻的对象概念。请在下面找到代码 sn-p 以供参考。

class Orgnization { public Collection ImageCollection { get; set; } } Organization orgWithNullImageCollection = new Organization(); org.ImageCollection = null; Collection imageCollection = new Collection(); // Adding 100 images to imageCollection Organization orgWithImageCollection = new Organization(); org.ImageCollection = imageCollection;

如果我将这两个对象传递给任何其他方法,性能会有什么不同吗?即通过 orgWithImageCollection 传递 orgWithNullImageCollection ?

我相信,Organization 对象的 ImageCollection 属性是否指向某个东西不会有任何区别。

请澄清。

【问题讨论】:

    标签: c# object


    【解决方案1】:

    您永远不会在 C# 中传递 objects - 只有值类型或引用的值。在这种情况下,您将在处理一个类时传递一个引用。无论它引用的对象的内容如何(如果有的话),引用都将是相同的大小(4 或 8 字节)。

    在这种情况下,两个对象的大小相同 - 只是其中一个对象具有空引用,而另一个对象具有对集合的引用。

    因此,您可以将具有集合的那个视为“较重”,因为涉及两个对象而不是一个。显然,额外的集合会占用内存 - 而空引用不引用任何对象,因此只需要空引用本身的大小。

    有关更多信息,请参阅我关于value types and reference typesargument passing 的文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2012-08-15
      • 1970-01-01
      • 2023-04-02
      • 2013-05-13
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多