代码之家  ›  专栏  ›  技术社区  ›  Ralph Shillington

为什么getValues将对象数组作为输入而不是返回新数组

  •  0
  • Ralph Shillington  · 技术社区  · 14 年前

    sqldatareader类提供了一个名为getValues的方法。我对这个方法感到好奇的是它需要 object[] 作为输入并返回 int 复制到数组中的值的数目。

    知道为什么方法是这样设计的,而不是返回一个新的数组吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Nick    14 年前

    According to the documentation :

    可以传递一个对象数组,该数组包含的列数少于结果行中包含的列数。只有对象数组保存的数据量被复制到数组中。还可以传递长度大于结果行中包含的列数的对象数组。

    这允许调用者完全控制内存分配,也可以轻松控制请求的列数。

        2
  •  3
  •   skolima    14 年前

    只是猜测一下,但是通过传入一个数组,您可以反复使用同一个数组。创建数组需要时间。不是很多时间,但是如果您迭代数百万个结果,那么通过重用同一个数组可以获得可测量的性能增益。每次创建一个新的数组也会导致GC需要更多的工作。

    推荐文章