Answers:
Svick的回答很好,但我想我会补充一点。
首先,该段是有缺陷的。指针类型不继承自对象。在运行时,被称为接口类型或类型参数类型的值在运行时将是无效的引用或从对象继承的东西的真实实例,但总是让我感到奇怪的是,这些类型“从对象继承 继承是祖先成员是后代成员的属性,但是您通常不会将“ ToString”视为IEnumerable的成员。您认为它是实现IEnumerable的事物的成员。
该段也有缺陷,因为这是“原始类型”出现在规范中的唯一位置,并且它没有定义。因此,它既不必要又令人困惑,应该删除。
我希望这段可以修复一段时间。下次我看到Mads时,我会提醒他。
要解决您的特定问题:svick当然是正确的,但查看特定示例会有所帮助。当你说:
struct ColorfulInt
{
int value;
Color color;
...
}
然后创建一个数组:
ColorfulInt[] x = new ColorFulInt[100];
然后,这100种int和100种颜色的存储将存储在数组本身中。如果将ColorfulInt改为一个类,则该数组将包含100个对ColorfulInt的引用,每个引用都必须单独分配。与简单地在数组本身中分配存储权相比,单独分配这数百个元素在时间和空间上的效率要低得多。