更新:2007 年 11 月
错误消息
显式接口实现“method name”与多个接口成员匹配。实际选择哪个接口成员将取决于实现。请考虑改用非显式接口实现。在有些情况下,泛型方法可能会获取与非泛型方法相同的签名。问题在于 Common Language Infrastructure (CLI) 元数据系统无法明确规定将哪个方法绑定到哪个槽。这需要 CLI 做出判断。
说明: |
---|
在 Visual Studio 2008 中的有些地方会引发此错误,而在 Visual Studio 2005 中的这些地方则不会引发此错误。 |
更正此错误
消除显式实现,并且只包含实现这两个接口方法的隐式实现 public int TestMethod(int)。
示例
下面的代码生成 CS0473:
复制代码 | |
---|---|
// cs0473.cs public interface ITest<T> { int TestMethod(int i); int TestMethod(T i); } public class ImplementingClass : ITest<int> { int ITest<int>.TestMethod(int i) // CS0473 { return i + 1; } public int TestMethod(int i) { return i - 1; } } class T { static int Main() { ImplementingClass a = new ImplementingClass(); if (a.TestMethod(0) != -1) return -1; ITest<int> i_a = a; System.Console.WriteLine(i_a.TestMethod(0).ToString()); if (i_a.TestMethod(0) != 1) return -1; return 0; } } |