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("");
};
}
}