【问题标题】:int[] type and documentationint[] 类型和文档
【发布时间】:2010-10-06 14:45:02
【问题描述】:

我对 C# 中的数组感到困惑。

我在 MSDN 上找不到任何文档,例如对象 double[]。 我确实找到了关于 int、array、collections 的文档……但找不到 double[] 是什么类型。如果我做 double[] a = new double[10]; a.GetType(),我发现a的类型是System.Double[]

我相信该类型不是 System.Double[],而必须是 System.Collections 命名空间或 System.Collections.Generic 命名空间中某个对象或接口的某个后代。我最好的猜测是 double[] 是一种实现接口 System.Collections.IList 的类型,但我完全不确定。

那么,谁能解释一下双精度数组(所以一个对象 double[])到底是什么类型的对象?它的基类是什么,它实现了哪些接口,... 我在哪里可以找到关于定义为 int[], ..., object[] 的对象数组的文档?

谢谢!

【问题讨论】:

    标签: arrays collections types


    【解决方案1】:

    Array 是所有类型数组 int、double、string 的基类,System.Array 的基类是 System.Object。所以正确的类型是 System.Double[]。它实现了 ICloneable, IList、ICollection、IEnumerable、IStructuralComparable、IStructuralEquatable 接口,如 msdn 中所述。 数组和集合的主要区别在于,数组在运行时不能改变大小,并且数组必须包含与集合相同类型的对象。

    【讨论】:

    • 非常感谢!为什么我不能在自定义类中实现 System.Array?或者更好,他们为什么不允许我这样做?
    • 不确定实施 System. 是什么意思。自定义类中的数组。我假设您希望将其用作基类并从中派生。这是不可能的,因为在框架中有一些类是为了永远不会被实例化的,因此被标记为静态的。这些类包括 Math、ThreadPool 和 Array。如果您想为 Array 类添加额外的功能,请尝试使用扩展方法。
    猜你喜欢
    • 2012-02-22
    • 2012-04-28
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多