Avatar billede onkel_satan Nybegynder
19. november 2007 - 22:06 Der er 7 kommentarer og
2 løsninger

Overvåg objekt ændringer i Visual studio

Nogen der ved om man kan sætte debuggeren til at stoppe op og fortælle mig hvornår en variable ændre sig. Har et List objekt hvor 'Count' værdien ligepludselig ændre sig til et uønsket tal og jeg kan ikke rigtig spore den ved hjælp af break points, eller jo det kan jeg, men saa skal jeg godt nok cykle igennem meget kode da jeg ingen aning har om hvornår og hvor den gør det.
Avatar billede hmortensen Nybegynder
19. november 2007 - 22:11 #1
Ved ikke lige hvordan man gør det du efterspørger, men du kan sætte flere breakpoints ind, og så hoppe til næste med F5, i stedet for at steppe hver linie igennem. Så kan du måske sporer dig ind på hvilken del der er synderen, og så kigge den efter i sømmene.
Avatar billede onkel_satan Nybegynder
19. november 2007 - 22:18 #2
Fandt fejlen lidt efter jeg postede, men ville stadig være nice hvis man kun holde øje med en specifik variable. Men hvis ikke, ja så må man stille og rogligt begynde at tapsere den med brak points.
Avatar billede hmortensen Nybegynder
19. november 2007 - 22:38 #3
Prøvede lige ad en gang, og så at når man debugger, kan man højreklikke på et object og vælge "Add watch", så kan man se værdierne nederst i vinduet, mens programmet kører.
Avatar billede nielle Nybegynder
19. november 2007 - 22:42 #4
Du kan evt. indkaplse den som en property og kigge på hvad der sker når man kalder dens set:

private int hmmmm = 0;
public int Hmmmm
{
    get { return hmmmm; }
    set
    {
        int glHmmmm = hmmmm;
        hmmmm = value;
        if (hmmmm != glHmmmm)
            MessageBox.Show("Før: " + glHmmmm.ToString() + "; Efter: " + hmmmm.ToString());
    }
}
Avatar billede onkel_satan Nybegynder
19. november 2007 - 22:48 #5
ahh..smart nok med watch der.

Også et lille fikst trick der Nielle.

Smid nogle svar saa splitter jeg dem mellem jer.

Og tak for hjælpen.
Avatar billede nielle Nybegynder
19. november 2007 - 22:51 #6
Svar :^)
Avatar billede mr-kill Nybegynder
19. november 2007 - 22:54 #7
ellers kan du bruge denne måde:

List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
    if (list.Count > 5)
        System.Diagnostics.Debugger.Break();

    list.Add(i);
}
Avatar billede hmortensen Nybegynder
19. november 2007 - 22:59 #8
Fordelen ved watch må dog være at det ikke kræver kode-ændringer :)
Avatar billede nielle Nybegynder
20. november 2007 - 07:02 #9
Nu argumentere jeg bare for at argumentere... :^)

Ulempen ved watch er at siden at man ikke ved hvor, hvornår eller hvorfor at variablen ændres (det var jo det der var gåden) så kan man komme til at sidde og gennemløbe rigtigt meget kode. Med property-metoden kan man blot sidde og bruge programmet og når den ændres popper der en messagebox op hvor man kan se fra- og til-værdierne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester