Ler em inglês

Partilhar via


Aviso do compilador (Nível 1) CS1957

O «nome» do membro substitui o «método». Há vários candidatos de substituição em tempo de execução. Depende da implementação qual método será chamado.

Parâmetros de método que variam apenas pelo facto de serem ref ou out não diferenciados em tempo de execução.

Para evitar este aviso:

  1. Dê a um dos métodos um nome diferente ou um número diferente de parâmetros.

Exemplo

O código a seguir gera 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;  
    }  
}