ライブラリにはActionというタイプがあります。VS2005、2008をサポートしており、現在はVS2010もサポートしようとしています。'Action'タイプと'System'を含む名前空間をファイルに含めて使用しようとすると、ActionタイプとSystem.Actionデリゲートの間のあいまいな参照呼び出しが表示されます。これはVS2010でのみ発生し、アクションデリゲートで何も変更されていなくてもVS2008またはVS2005でエラーをスローしません(名前空間、アセンブリはすべて3.5と4.0で同じです)。なぜこれが起こっているのか考えていますか?
アップデート:
これを再現するための簡単なアプリケーションを作成しました。
Class1.cs:
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace1
{
public enum Action
{
Mouse,
Keyboard
}
}
Class2.cs:
using Namespace1;
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace2
{
public class Class2
{
public Class2()
{
Action a;
}
}
}
上記のコードはVS2008では正常にコンパイルされますが、VS2010ではエラーがスローされます:「エラーCS0104:「アクション」は「Namespace1.Action」と「System.Action」の間のあいまいな参照です」
4.0ではなくVS2010とターゲットFramework3.5を使用すると、同じエラーが発生します。
ありがとう、ニランジャン