2014-02-10 24 views

回答

2

演员对象双打的数组:

double[] array = (double[])data; 

然后你就可以访问项目或迭代array:

foreach(double value in array) 
    //... 
+1

笑,这么简单...谢谢。不知道你可以像这样阵列。仍然有很多要学习。 – user3293361

+0

downvote的原因是什么? –

+0

嗯。我做到了吗?如果我这样做,我不是故意的。由于我在这里是新来者,所以我的能力非常有限。我投了票,这让我等待。我试图再次投票表示它需要15个声望。所以我可能因为沮丧而意外投票,我不是故意的。 – user3293361

0

if you 知道其双打的阵列可以转换为该类型:

double[] values = (double[])data; 

这将引发InvalidCastException如果data的类型不是双打的数组。

0

您可以使用as操作

double[] array = data as double[]; 
if(array != null) 
{ 
    .. 
} 

它避免了InvalidCastException,如果data类型不是double[]您的数组变得null

-1

如果您希望方法的调用者始终传入可迭代的某些类型的数据,并且方法需要迭代它,那么它不应接受类型为object的参数,它应该接受一个参数类型IEnumerable,或可能有IEnumerable<T>与某些特定类型(如double)。

您应该只接受object并尝试投它。这样做并没有正确地向调用者指出他们需要传递一些可以迭代的东西。

另外请注意,你可能并不需要按引用传递对象(使用ref关键字)。这只对更改引用的对象有用。通常这不合适。如果通过此方法生成新对象,则可能需要返回它,而不是改变参数。