Erreur du compilateur CS1618
Mise à jour : novembre 2007
Message d'erreur
Impossible de créer un délégué avec 'méthode', car il a un attribut conditionnel
Cannot create delegate with 'method' because it has a Conditional attribute
Vous ne pouvez pas créer un délégué avec une méthode conditionnelle parce que la méthode pourrait ne pas exister dans certaines générations.
L'exemple suivant génère l'erreur CS1618 :
// CS1618.cs
using System;
using System.Diagnostics;
delegate void del();
class MakeAnError {
public static void Main() {
del d = new del(ConditionalMethod); // CS1618
// Invalid because on builds where DEBUG is not set,
// there will be no "ConditionalMethod".
}
// To fix the error, remove the next line:
[Conditional("DEBUG")]
public static void ConditionalMethod()
{
Console.WriteLine("Do something only in debug");
}
}