C# 哪个是较轻的物体

C# 哪个是较轻的物体,c#,object,C#,Object,我在这里感到困惑。哪个是较轻的物体?orgWithNullImageCollection还是orgWithImageCollection?在下面的代码中。或者它是一个更轻的物体概念。请查找下面的代码片段以供参考 class Orgnization { public Collection ImageCollection { get; set; } } Organization orgWithNullImageCollection = new Organization(); org.Im

我在这里感到困惑。哪个是较轻的物体?orgWithNullImageCollection还是orgWithImageCollection?在下面的代码中。或者它是一个更轻的物体概念。请查找下面的代码片段以供参考


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;

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

我相信,组织对象的ImageCollection属性是否指向某个对象没有任何区别

请澄清。

您从未在C#中传递对象-仅传递值类型的值或引用。在本例中,您将在处理类时传递引用。无论引用对象的内容如何(如果有),引用的大小都将相同(4或8字节)

在本例中,两个对象的大小相同——只是其中一个对象将具有null引用,而另一个对象具有对集合的引用

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

有关更多信息,请参阅我关于和的文章。

您永远不会在C#中传递对象-只传递值类型或引用的值。在本例中,您将在处理类时传递引用。无论引用对象的内容如何(如果有),引用的大小都将相同(4或8字节)

在本例中,两个对象的大小相同——只是其中一个对象将具有null引用,而另一个对象具有对集合的引用

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

有关更多信息,请参阅我关于和的文章