我试图测试我的方法是否有here描述的溢出错误。
由于某种原因,运行测试失败并出现错误" TestFixtureSetUp失败"。
使用int[int.MaxValue]
初始化数组可能有问题。
有人可以解释如何解决这个问题吗?
[TestFixture ()]
public class FindRecursiveTest
{
int[] overflowArray = new int[int.MaxValue];
[Test ()]
public void TestOverflow ()
{
int[] array = overflowArray;
int searchNumber = int.MaxValue;
Assert.AreEqual(-1, BinarySearcher.FindRecursive(searchNumber, array, 0,array.Length - 1), "key 0");
}
答案 0 :(得分:2)
初始化OutOfMemoryException
时,类初始值设定项可能会抛出overflowArray
。由于.NET中对象的最大大小为2GB
从.NET 4.5开始,您可以通过设置gcAllowVeryLargeObjects
设置创建大小超过2GB的数组,但大小限制仍适用于其他对象。