需要一个会失败的场景Array.ConstrainedCopy()

时间:2010-06-01 12:03:19

标签: c#

只是在使用.NET中的一些API,我似乎无法找到导致Array.ConstrainedCopy()失败的方法。

根据MSDN,它被视为原子操作。如果在复制期间失败,则整个调用失败,导致没有复制元素而不是其Array.Copy()对应。

有人可以证明这一点或告诉我该怎么做吗?

此代码在两种类型的副本中均失败。我想看一个Array.Copy()的例子,只复制一些元素,以便更好地理解我可以使用哪种形式的复制。

object[] yer = new object[] { "as", "qwe", "re", 1 };

    string[] copy = new string[yer.Length];

    Array.ConstrainedCopy(yer, 0, copy, 0, yer.Length); // runtime error

    Array.Copy(yer, 0, copy, 0, yer.Length); //runtime error

1 个答案:

答案 0 :(得分:1)

您可以将Object []类型的数组复制到String []类型的数组中。当源数组中的某个元素无法转换为字符串时,副本将失败。 Array.Copy 将停止发生错误的位置,而 Array.ConstrainedCopy 将回滚整个操作。