一直很感兴趣为什么Array.Sort()和Array.IndexOf()方法是静态的,类似的ArrayList.Sort()和ArrayList.IndexOf)被设计为成员方法。谢谢你的意见。
在我看来,数组类基本上是我们在程序中使用[]声明的固定大小数组的类表示(您可以将int的类(结构)表示法类似于System.Int32)
此外,Array类在任何实例变量中都不包含实际的数组数据,但它只提供静态实用程序函数,可用于在声明的固定大小数组中进行排序和搜索。
另一方面,ArrayList是一个集合类,它提供了动态大小的数组实现,并且它有自己的数据结构来包含数据。所以,上述方法是实例方法,所以它们可以处理特定实例的数据。
像ArrayList
这样的集合类封装了某种内部存储(可能是一个根据需要调整大小的数组,但它也可以是链表或其他实现)。像IndexOf
和Sort
这样的方法需要访问底层的专用存储才能高效,所以它们必须是安装方法。
另一方面,Array
没有封装,直接对存储器进行公共访问。Array.IndexOf
和Array.Sort
方法不需要对数组数据进行任何特殊访问,因此它们也可以是静态方法。