Partager via


Erreur du compilateur CS1688

Mise à jour : novembre 2007

Message d'erreur

Impossible de convertir un bloc de méthode anonyme sans une liste de paramètres en type délégué 'délégué', car il a un ou plusieurs paramètres out
Cannot convert anonymous method block without a parameter list to delegate type 'delegate' because it has one or more out parameters

Dans la plupart des cas, le compilateur autorise des paramètres à être omis d'un bloc de méthode anonyme. Cette erreur se produit lorsque le bloc de méthode anonyme ne contient pas de liste de paramètres, mais que le délégué a un paramètre out. Le compilateur n'autorise pas cette situation parce qu'il devrait ignorer la présence du paramètre out, ce qui ne correspond pas au comportement correct.

Exemple

Le code suivant génère l'erreur CS1688.

// CS1688.cs
using System;
delegate void OutParam(out int i);
class ErrorCS1676
{
    static void Main() 
    {
        OutParam o;
        o = delegate  // CS1688
        // Try this instead:
        // o = delegate(out int i)
        { 
            Console.WriteLine("");
        };
    }
}