Voici un court programme.
Que retourne t-il ?
Réponse :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // On récupère un MemberInfo, n'importe laquelle MemberInfo mi1 = typeof(XmlDocument).GetMethod("ToString"); // On récupère son module et son MetadataToken Module module = mi1.Module; int token = mi1.MetadataToken; // On retrouve le MemberInfo dans le module, grâce au token MemberInfo mi2 = module.ResolveMember(token); // et là... j'hallucine Console.WriteLine((mi1 == mi2) + " = (mi1 == mi2)"); Console.WriteLine((mi1.Equals(mi2)) + " = (mi1.Equals(mi2))"); Console.WriteLine(MemberInfo.ReferenceEquals(mi1, mi2) + " = (MemberInfo.ReferenceEquals(mi1, mi2)"); Console.WriteLine((mi1.GetHashCode() == mi2.GetHashCode()) + " = (mi1.GetHashCode() == mi2.GetHashCode()"); Console.ReadLine();
Faux
Faux
Faux
Vrai
Quelqu'un peut m'expliquer comment c'est possible ?
Mose, très énervé contre MS qui sait pas gérer la compatiblité ascendante
Partager