有人可以向我解释为什么当我在x86平台上执行它以及为什么它在x64上失败时这段代码表现良好?
结果:
如果我改变某些东西,比如删除一个未使用的变量,或者如果我在p_lFirstId ++之后删除无用的for循环,那么奇怪的行为就会消失.
我发现在我的发布配置中将"pdb-only"更改为"full",它再次起作用.
如果您直接从visual studio运行代码,它也表现良好.
这是JIT Compiler的错误吗?
先感谢您.
class Program
{
static void Main(string[] args)
{
Test(null, null, null, 0, 1);
}
public static void Test(
List<string> liste, List<string> unused1,
string unused2, int unused3, long p_lFirstId)
{
liste = new List<string>();
StringBuilder sbSql = new StringBuilder();
for (int i = 0 ; i < 10 ; i++)
{
sbSql.Append(p_lFirstId);
p_lFirstId++;
foreach (string sColonne in liste)
{
}
}
System.Console.WriteLine(sbSql.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)