Identique - Pas de diff. Le compilateur déduit le type de délégué et le fait automatiquement par magie pour vous. Du sucre syntactique pour vous rendre la vie un peu plus facile
Juste vérifié avec profondeur C#. Cette fonctionnalité est appelée "Conversions de groupe de méthodes"; ajouté en C# 2,0
par ex. du livre
static void MyMethod() { ... }
static void MyMethod(object sender, EventArgs e) {...}
static void Main() {
ThreadStart x = MyMethod; // binds to first overload
EventHandler y = MyMethod; // binds to second overload
}
Si j'ouvre cela dans le réflecteur, vous verriez que le compilateur vient de créer les instances de délégué du type pour vous, dans les coulisses de cours.
L_0000: ldnull
L_0001: ldftn void CS.Temp.Program::MyMethod()
L_0007: newobj instance void [mscorlib]System.Threading.ThreadStart::.ctor(object, native int)
L_000c: pop
L_000d: ldnull
L_000e: ldftn void CS.Temp.Program::MyMethod(object, class [mscorlib]System.EventArgs)
L_0014: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int)
L_0019: pop
Ceci est une dupe. –
aucune différence. mon 0.02c, même chose est vrai pendant que vous annulez l'enregistrement. –
@Mehrdad - Vous pouvez au moins avoir la décence de donner un lien vers le doublon – Elad