Lire en anglais

Partager via


Avertissement du compilateur (niveau 1) CS1957

Le membre 'nom' se substitue à 'méthode'. Il existe plusieurs candidats à la substitution au moment de l’exécution. La méthode appelée dépend de l’implémentation.

Les paramètres de méthode qui varient uniquement s’ils sont ref ou out ne peuvent pas être différenciés au moment de l’exécution.

Pour éviter cet avertissement

  1. Attribuez un autre nom ou un nombre de paramètres différent à l’une des méthodes.

Exemple

Le code suivant génère l’erreur CS1957 :

C#
// 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;  
    }  
}