类的方法调用,类里面已经定义好了,直接调用就行了,
但是数组里调用的方法去哪里找呢,是如何调用的。
如:
string str = "123456";
char[] a = str.ToCharArray();
str = new string(a.Reverse().ToArray());代码里的Reverse方法是哪定义的,char数组是如何调用它的不知道有没有描述清楚

解决方案 »

  1.   

    Array.Reverse 
    http://msdn.microsoft.com/zh-cn/library/d3877932(VS.80).aspx
      

  2.   

    system.array
    提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。
    msdn:http://msdn.microsoft.com/zh-cn/library/system.array%28VS.80%29.aspx
      

  3.   

    那是Linq的扩展方法,由Enumerable类定义...想知道在哪儿定义及如何调用按F12或去看MSDN...
      

  4.   

    是在Enumerable中定义的,我现在是想知道数组是怎么调用它的,为什么定义了char数组后,类调用类的方法是因为类定义了方法,数组是如何调用Enumerable中定义的方法呢,最直接的说就是为什么a.后面会有Reverse的提示。
      

  5.   

    在 msdn 里检索有关“扩展方法”的说明。
      

  6.   

    所有的数组类型都继承自 Array
      

  7.   

    是在Enumerable中定义的,我现在是想知道数组是怎么调用它的,为什么定义了char数组后,类调用类的方法是因为类定义了方法,数组是如何调用Enumerable中定义的方法呢,最直接的说就是为什么a.后面会有Reverse的提示。
      

  8.   

    Reverse 方法的定义在这里,有不对的请高手斧正:
    array char实现List<T>.List<T> 实现了IList<T>, IList<T> 执行了IEnumerable<T>在泛型IEnumerable<T>中定义了Reverse扩展方法。
    public static IEnumerable<TSource> Reverse(this IEnumerable<TSource> array)
    {
       //实现reverse 方法
    }这里TSource 是 char 类型的。
    所以,char array 可以调用Reverse 方法。
      

  9.   

    这个问题跟Array没有半毛钱关系,跟char更是不沾边...仅仅因为数组有IEnumerable<T>接口...此扩展方法由Linq为IEnumerable<T>接口添加,可以在任何实现IEnumerable<T>接口的对象上将此方法作为实例方法调用...不仅要看MSDN,关键要“会”看MSDN...
      

  10.   

    完全正确!
    LZ 还是要学会看 MSDN。
      

  11.   


    不好意思啊,水平不行,再请教“数组有IEnumerable<T>接口”,这个是怎么理解呢,我其实最想知道的就是数组是如何调用一个方法(如clone,Reverse等方法),应该是跟你说的数组有什么接口有关系,但是怎么能查到数组是哪些接口呢。
      

  12.   

    数组 是Array 派生的,Array 中实现的都是 非泛型IEnumerable,Array不具有linq的扩展方法,跟Array 没关系。
    数组 是实现了 IList<T>,并非是List<T> ,而IList<T>实现了 IEnumerable<T> 。
    至于 为如何调用,要看看   扩展方法
      

  13.   

    Array 类是所有数组的基类。它实现了 IEnumerable<T> 接口, 所以数组就都有IEnumerable<T>接口了。而为IEnumerable<T>接口添加的扩展方法,所有数组实例都可以作为实例方法来调用了。