gpt4 book ai didi

c# - 发生异常 "System.InvalidProgramException: JIT Compiler encountered an internal limitation "

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:03 36 4
gpt4 key购买 nike

示例代码:

下面的代码并不完整,但足以说明我面临的 wt 问题。

namespace ClassLibrary1
{
class Class1
{
internal static void sum(ref List<TestClass> a, int b)
{

//some code

}
}

}

同一个程序集中有另一个类

namespace ClassLibrary1 
{
class TestClass
{
//code

}

}

当我为方法 sum 创建单元测试用例时,代码会是这样

[TestMethod()] 
public void sumTest()
{
List<TestClass_Accessor> lstTestClass = new List<TestClass_Accessor>();
Class1_Accessor.sum(ref lstTestClass, b);
}

问题:在上面的代码中,我正在创建类型为 TestClass 的列表,但它是私有(private)类,因此 VSTS 创建 TestClass_Accessor 以访问类功能。在方法 Sum 中,它将参数作为“TestClass”类型列表的引用。

我也调试了我的代码,但是什么时候

Class1_Accessor.sum(ref lstTestClass, b);被调试它抛出异常“System.InvalidProgramException:JIT 编译器遇到内部限制”。

当我创建字符串类型的列表时,它就可以工作了,即列表没有问题。

根据我的理解,问题出在列表类型中。在单元测试中,我们创建类型列表 TestClass_Accessor .

并且在类列表中有类型 List<TestClass> .

请为此提供解决方案。

问候,

尼廷萨胡

最佳答案

我无法理解您在说什么。但...TestClass 在您提供的代码中不是私有(private)的。默认情况下,当未指定访问修饰符时它是内部的。并且您可以轻松地在您的测试中访问内部成员。当你消除额外的东西(TestClass_Accessor)时,也许你不会有任何问题。

看这里:How to test Framework if Unit tests are in separate assembly?

顺便说一句,在传递引用值时,您不需要ref

关于c# - 发生异常 "System.InvalidProgramException: JIT Compiler encountered an internal limitation ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855188/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com