继承自Array类

Joe*_*Joe 4 .net c# arrays

我在C#中创建的所有数组都是从Array类中隐式继承的.那么为什么Sort()等方法不能用于我创建的数组.例如,请考虑以下代码:

int [] arr = new int[]{1,2,3,4,5};

Console.WriteLine(arr.Length); //This works,Length property inherited from Array

Array.Sort(arr); //Works

arr.Sort(); //Incorrect !
Run Code Online (Sandbox Code Playgroud)

请帮助谢谢.

Dar*_*rov 12

这是因为Sort方法是在Array类上定义的静态方法,所以你需要像这样调用它:

Array.Sort(yourArray);
Run Code Online (Sandbox Code Playgroud)

您不需要该类的实例来调用静态方法.你可以直接在类名上调用它.在OOP中,静态方法没有继承的概念.

  • @Joe:并不是因为你没有继承它们,所以你不会将它们称为"on"实例.在这种情况下,您碰巧*为该方法提供*实例,但这实际上是巧合. (4认同)