链表struct or class
各位有没想过这样一个问题,C#链表通常都是由Class实现的,但是可以由struct 实现吗?
不是这样的。struct 是由栈分配的,而对象是由堆分配的。链表是随机存储结构,它需要的是堆空间,而不是栈空间;所以不能由struct 来实现。从原理上来说,struct是无法实现链表这样的结构的。
虽然struct 可以实现类的部分功能,但是new 一个struct只是将事先定义好的空间初始化,并没有动态分配空间。换句话说,如果没有事先定义好该struct的空间,那么无法实现new 功能。对链表来说,就无法实现可变长度的链表,也就不能称为链表了。