DateTimeOffset?
パラメータの 1 つとしてa を受け取るインターフェイスをモックしようとしていました。突然、Visual Studio が「内部コンパイラ エラー」を報告し始め、それが「動作を停止した」と報告しました。何度も試行錯誤した後、ファイルを 1 つずつ削除してから、1 行ずつコードを書き始めました。これは、このエラーを再現する以下のコードに縮小されます。
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 September 2012 の両方でコンパイル エラーが発生します。
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' です。
このコードは Moq とは関係ありません。