none
Inversion de l'ordre des termes d'une liste générique RRS feed

  • Discussion générale

  • Bonjour tout le monde,

    Dans un programme C# WinForms, j'ai ceci :

    List<long> uids = null;
    ((List<long>)uids).Reverse();

    Entre les deux j'initialise les valeurs.

    Avant-hier, ça marchait très bien, ça inversait les lignes, mais maintenant, il est possible que ça ferait le boulot mais, même si jusqu'à cette ligne avec Reverse, pendant le débogage, la source est bien affichée en C#, à partir de cette ligne ci-dessus, la suite est affichée en langage machine.


    738FCAF1 mov ebp,esp 738FCAF3 push edi 738FCAF4 push esi 738FCAF5 push ebx 738FCAF6 mov esi,ecx 738FCAF8 mov edi,edx 738FCAFA mov ebx,dword ptr [ebp+8] 738FCAFD test edi,edi 738FCAFF jl 73B72610 738FCB05 test ebx,ebx 738FCB07 jl 73B72626 738FCB0D mov eax,dword ptr [esi+0Ch] 738FCB10 sub eax,edi 738FCB12 cmp eax,ebx

    Le casting n'est pas nécessaire puisque le bon type est reçu, mais je sais qu'il aurait bien pu m'être proposé. alors c'est plus simple que je le propose directement.

    Et je suis au regret de reconnaître que je suis plus lent à interpréter l'assembleur que le C#. J'en ai fait quelques années aussi, mais il y a plus longtemps.

    Quelqu'un a-t-il une idée de ce qui a pu se passer ? (*)

    Ou de la direction dans laquelle chercher ?

    Les longs dans la liste sont des IntPtr, désignant des fenêtres.

    Ah, voilà que maintenant j'ai une autre instruction qui occasionne le même problème :

    System.Diagnostics.Debug.Print("{0} : timer1_Tick()", DateTime.Now);

    Là non plus je n'ai pas spécialement l'impression que le code soit en cause.

    _____

    (*) Depuis que les Balloontips ne s'affichent plus sur cette machine alors que sur la machine cible en Vista si, je me doute que ça doit être un problème de mises à jour automatique.



    lundi 16 mars 2020 01:39