C#是Microsoft.Office.Interop.Excel.Range.Cell.Count一个计算每个调用或一个常量

我有一些代码,我通过检查属性Excel.Range.Cells.Count检查我的Excel.Range中是否有任何单元格。 从我的分析来看,这似乎是一个瓶颈(注意,这个方法被称为很多次)。 有谁知道如何实现计数属性,是通过遍历所有细胞在每次调用计算,或者是一个常量?

在Microsoft的文档,StackOverflow或Google中,我找不到这方面的内容。 任何帮助表示赞赏。

非常感谢你。

由于Excel.Range.Cells返回一个Range对象本身,因此使用Range的属性。 其文档说它返回一个集合中的对象的数量。 [MSDN] [1]

这表示范围就像一个dynamic数组,因此它的Count属性不能是常量(在C风格常量的意义上)。 因此,我们可以推断,每次调用都会计算出属性,至less通过读取内部存储的值(仅在集合更改时更新)才能进行计算。

[1] http://msdn.microsoft.com/en-us/library/aa214230(v=office.11​​).aspx