04. september 2003 - 00:51Der er
10 kommentarer og 2 løsninger
Referenceproblemer iblandt klasser ved property
Jeg har flere referenceproblemer :/.
Jeg har en property i klassen C1:
public int ID { get { return id; } set { id = value; itemIcon = C2.GetNameFromID(id) + "/group.gif"; } }
"id" er en privat int. I GetNameFromID funktionen prøver jeg at bruge den int der bliver vedsendt (kalder .ToString()) på den, men jeg får en reference not set to an instance fejl.
Det forstår jeg dog ikke da ints, såvidt jeg forstår, er value types. Jeg bør således ikke få en reference sendt med, men derimod en kopi af værdien? Eller misforstår jeg noget?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det virker også lidt pudsigt at du mener du erklærer et objekt i C1, men rent faktisk kalder C2. Hvordan har du erklæret C2/C1 ? Du skal først erklære en instans af den, før du kan kalde GetNameFromID. Fx. C2 _c2 = new C2(); itemIcon = _c2.GetNameFromId(id);
Den har jeg også prøvet cyberfessor, desværre med samme resultat. Men jeg kan specielt ikke forstå det da en int da burde være en value type, og således burde der på ingen måde kunne opstå referenceproblemer?
dumt spørgsmål... men id er sælvfølgelig erklæret som et int field i din C1-klasse ?
du har umiddelbart ret i, at int er en ValueType, og derfor befinder sig på stacken... det er dog desværre ikke helt så enkelt alligevel, så derfor tror jeg godt du kan få en "NullReferenceException" på en int
Jeg tager lige og henter en spand vand og kaster den ud over mig selv...
Fejlen var at jeg som ID værdi brugte tallet 3 i min kode, dette tal betød at der ikke blev returneret en værdi fra databasen. Således fik jeg min reference fejl når jeg kaldte .ToString() på en ExecuteScalar() funktion.
Da jeg testede med konstanten 2, så kom fejlen ikke, netop fordi 2 resulterede i en værdi fra databasen...
Smid lige nogle svar, i skal selvfølgelig have point for at bruge tid på så tåbelig en fejl fra min side :)
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.