我试图模拟一个将 aDateTimeOffset?
作为其参数之一的接口。突然之间,Visual Studio 开始报告“内部编译器错误”并且它已经“停止工作”。经过大量的尝试,我开始一个一个地删除文件,然后逐行代码。这简化为以下代码,它重现了此错误:
public class testClass
{
public interface ITest
{
void Test(DateTimeOffset? date);
}
public void test2()
{
var mock = new Mock<ITest>();
mock.Setup(x => x.Test(new DateTime(2012, 1, 1)));
}
}
问题似乎是行:
mock.Setup(x => x.Test(new DateTime(2012, 1, 1)));
如果我评论它,编译器工作正常。另外,问题是我正在设置一个new DateTime()
,它适合DateTimeOffset
.
这是一个错误Moq
,还是VS2012
?以前有人遇到过这个错误吗?
更新
以下代码示例还会导致编译错误,无论是使用常规 Visual Studio 2012 编译器还是使用 Roslyn CTP 2012 年 9 月:
using System;
using System.Linq.Expressions;
public interface ITest
{
void Test(DateTimeOffset? date);
}
public class TestClass
{
Expression<Action<ITest>> t = x => x.Test(new DateTime(2012, 1, 1));
}
错误:
1>CSC:错误 CS0583:内部编译器错误(地址 00D77AFB 处的 0xc0000005):可能的罪魁祸首是“BIND”。
此代码与起订量无关。