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
Il membro 'name' esegue l'override di 'method'. In fase di esecuzione sono disponibili più candidati per l'override. Il metodo che verrà chiamato dipende dall'implementazione.
Member 'name' overrides 'method'. There are multiple override candidates at run-time. It is implementation dependent which method will be called.
I parametri del metodo che variano solo in base al fatto che sono ref o out non possono essere differenziati in fase di esecuzione.
Per evitare la visualizzazione di questo avviso
- Assegnare a uno dei metodi un nome diverso o un numero di parametri diverso.
Esempio
Nel codice seguente viene generato l'errore CS1957:
// cs1957.cs
class Base<T, S>
{
public virtual string Test(out T x) // CS1957
{
x = default(T);
return "Base.Test";
}
public virtual void Test(ref S x) { }
}
class Derived : Base<int, int>
{
public override string Test(out int x)
{
x = 0;
return "Derived.Test";
}
static int Main()
{
int x;
if (new Derived().Test(out x) == "Derived.Test")
return 0;
return 1;
}
}