总是很感兴趣,为什么Array.Sort()和Array.IndexOf()方法是静态的,类似的ArrayList.Sort()和ArrayList.IndexOf()被设计为成员方法。谢谢你的任何想法。
Alexander Prokofyev
问问题
1734 次
2 回答
5
在我看来,Array 类基本上是我们在程序中使用 [] 声明的固定大小数组的类表示(您可以像 int 一样将其类(结构)表示为 System.Int32 进行类比)。
此外,Array 类不包含任何实例变量中的实际数组数据,但它仅提供静态实用程序函数,可用于在声明的固定大小数组中进行排序和搜索。
另一方面,ArrayList 是一个集合类,它提供动态大小的数组实现,并且它有自己的数据结构来包含数据。因此,所述方法是实例方法,因此它们可以处理该特定实例的数据。
于 2008-10-07T05:03:59.023 回答
3
像这样的集合类ArrayList
封装了某种内部存储(可能是一个根据需要调整大小的数组,但它也可以是一个链表或其他一些实现)。方法喜欢IndexOf
并且Sort
需要访问底层私有存储以提高效率,因此它们必须是实例方法。
Array
另一方面,没有封装,可以直接访问存储。Array.IndexOf
andArray.Sort
方法不需要对数组数据进行任何特殊访问,因此它们也可以是静态方法。
于 2009-01-05T18:47:07.013 回答