相关疑难解决方法(0)

强制"将下一个语句"设置为"if"块时的CLR System.NullReferenceException

背景

我接受这不是在正常的代码执行期间可能发生的事情,但我在调试时发现它并认为分享有趣.

我认为这是由JIT编译器引起的,但欢迎任何进一步的想法.

我已使用VS2013复制了针对4.5和4.5.1框架的此问题:

VS2013 Premium 12.0.31101.00 Update 4. NET 4.5.50938


建立

要查看此异常,Common Language Runtime Exceptions必须启用: DEBUG>Exceptions...

已启用公共语言运行时例外

我已将问题的原因提炼到以下示例:

using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication6
{
    public class Program
    {
        static void Main()
        {
            var myEnum = MyEnum.Good;

            var list = new List<MyData>
            {
                new MyData{ Id = 1, Code = "1"},
                new MyData{ Id = 2, Code = "2"},
                new MyData{ Id = 3, Code = "3"}
            };

            // Evaluates to false
            if (myEnum == MyEnum.Bad) // BREAK POINT 
            {
                /*
                 * A …
Run Code Online (Sandbox Code Playgroud)

.net c# clr lambda c#-4.0

15
推荐指数
1
解决办法
835
查看次数

标签 统计

.net ×1

c# ×1

c#-4.0 ×1

clr ×1

lambda ×1