Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
L'implementazione esplicita dell'interfaccia 'nome metodo' corrisponde a più membri di interfaccia. La scelta effettiva del membro dipende dall'interfaccia. Si consiglia di utilizzare un'implementazione non esplicita.
Explicit interface implementation 'method name' matches more than one interface member. Which interface member is actually chosen is implementation-dependent. Consider using a non-explicit implementation instead.
In alcuni casi un metodo generico potrebbe acquisire la stessa firma di un metodo non generico. Il problema è che non è possibile nel sistema di metadati dell'infrastruttura CLI (Common Language Infrastructure ) dichiarare in modo non ambiguo i metodi associati agli slot. Tale determinazione dipende dall'infrastruttura CLI.
Nota: |
|---|
Questo errore viene generato in Visual Studio 2008 nei punti in cui non era generato in Visual Studio 2005. |
Per correggere l'errore
- Eliminare l'implementazione esplicita e implementare entrambi i metodi di interfaccia mediante l'implementazione implicita public int TestMethod(int).
Esempio
Nel codice seguente viene generato l'errore 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;
}
}
Nota: