Hvor er fejlen?

Tags:    c#

Hej udviklere.

Jeg har lavet mig en event-kalender i C# på .NET platformen.
På min Form er der en masse Buttons som svarer til dagene i en måned. For at undgå MouseHover Metoder på hver eneste Button, kalder alle mine Buttons Hover Event den samme Metode, hvor jeg så prøver at trække data ud af "Object sender" for at identificere hvilken Button der har kaldt Metoden. Jeg smider Object sender over i en ny Button og tjekker derefter hvad "Tag" property indeholder. Jeg får en mærkelig rettelse i VS2010 når jeg bruger sender Objektet. I kan se det på billedet herunder. Jeg har prøvet at typecaste "Tag" til string osv, intet hjælper. Men "Tag" skulle da også være af typen string i forvejen?
Håber i kan hjælpe

Link til billede:
Kodebillede

Fold kodeboks ind/udCSharp kode 




Indlæg senest redigeret d. 25.12.2010 11:50 af Bruger #16319
Tag er et objekt og du sammenligner den med en string. Sikker på du ikke mener but.Text ?



Tag er et objekt og du sammenligner den med en string. Sikker på du ikke mener but.Text ?


Er Tag et objekt? Jeg troede det var et datafelt til at fylde en string i.
Men tak for det, det må jeg lige finde ud af at bruge så :)



Tag er et objekt og du sammenligner den med en string. Sikker på du ikke mener but.Text ?


Er Tag et objekt? Jeg troede det var et datafelt til at fylde en string i.
Men tak for det, det må jeg lige finde ud af at bruge så :)


String er også et objekt ;). Men såvidt jeg kan se kan man sætte tag til hvad ham har lyst til. Så du kan også sætte det til en string hvis du lyster.



Indlæg senest redigeret d. 25.12.2010 18:20 af Bruger #3275
Tag er et objekt og du sammenligner den med en string. Sikker på du ikke mener but.Text ?


Er Tag et objekt? Jeg troede det var et datafelt til at fylde en string i.
Men tak for det, det må jeg lige finde ud af at bruge så :)


String er også et objekt ;). Men såvidt jeg kan se kan man sætte tag til hvad ham har lyst til. Så du kan også sætte det til en string hvis du lyster.


Ahh okay. Jamen hvorfor melder den så den fejl? Selvom jeg typecaster til string, melder den samme fejl nemlig



Hej Rasmus

Prøv at ændre koden lidt.
Det her virker for mig.
Fold kodeboks ind/udKode 






Eller:
Fold kodeboks ind/udKode 


Hvis du siger
StringA == StringB
vil den tjekke om StringA er den samme som StringB alstå om de 2 reference er lig med hinanden. Den vil ikke tjekke om selve "indholdet" eller værdien er den samme.

Du ønsker at tjekke om indholdet er den samme så skal du bruge String.Equals metoden som returnerer sand hvis indholdet er identisk selvom de ikke er den samme streng.

Er næsten fuldstændig sikker på det ville være meningsløst at bruge == med en sådan 'literal' streng "1" du har der siden man ikke "kan få fat i" referencen på den så en == på den vil altid være falsk. Tror måske også det er årsagen til fejlen?



Indlæg senest redigeret d. 01.01.2011 02:51 af Bruger #14645
t