更新:我已向Microsoft Connect 提交了错误报告,请投票支持!
更新2: Microsoft已将错误报告标记为已修复
微软于18/08/2010 17:25发表
此错误将在运行时的未来版本中修复.我担心现在判断它是在服务包还是下一个主要版本中还为时过早.
自从升级到VS2010后,我的'is'关键字出现了一些非常奇怪的行为.
下面的程序(test.cs)在调试模式下编译时(对于x86)输出True,在编译时使用优化(对于x86)时输出False.编译x64或AnyCPU中的所有组合可得到预期结果True.
.NET 3.5下的所有编译组合都给出了预期的结果True.
我正在使用下面的批处理文件(runtest.bat)来编译和测试代码,使用编译器.NET框架的各种组合.
using System;
public class Program
{
public static bool IsGuid(object item)
{
return item is Guid;
}
public static void Main()
{
Console.Write(IsGuid(Guid.NewGuid()));
}
}
Run Code Online (Sandbox Code Playgroud)
@echo off
rem Usage:
rem runtest -- runs with csc.exe x86 .NET 4.0
rem runtest 64 -- runs with csc.exe x64 .NET 4.0
rem runtest v3.5 -- runs with csc.exe …Run Code Online (Sandbox Code Playgroud)