2

为什么结构中不需要构造函数?

为什么 GC 不删除结构?

4

2 回答 2

3

结构是一种值类型,因此它不受 GC 管理。结构可以声明构造函数,但它们必须带参数。结构的副本由编译器自动创建和销毁,因此不需要默认构造函数

于 2010-07-05T14:42:55.187 回答
2

结构是一种值类型,这意味着,无论何时访问它或传递它,它的值都会被传递。(“复制”)

另一方面,类是引用类型。如果你传递它,只传递对它的引用(所以现在两者都使用同一个对象)

当您处理类及其实例作为引用时,GC 必须检查是否已收集所有引用。这在值类型中是不需要的,因为它们只能有一个引用。这意味着,如果收集了基础对象,则会自动收集这些对象。

于 2010-07-05T14:45:24.803 回答