[C#] List.Add probleem bij CollectionBase

Pagina: 1
Acties:

  • AquilaDus
  • Registratie: Januari 2004
  • Laatst online: 21-03 00:33
Ik heb de volgende klasse:

code:
1
2
3
4
5
6
7
8
9
public class VraagCollectie : CollectionBase
{
  .....
  public int Add(VAntwoord antwoord)
  {
     return List.Add(antwoord);
  }
  .....
}


Nu ontstaat er bij elke aanroep van List.Add(...) een NullReferenceException, maar ik weet zeker dat het in te voegen object bestaat. Heeft iemand een idee waar deze exception vandaan komt en hoe ik dit probleem kan oplossen?
De List inherit deze klasse van CollectionBase, dus dat zou ook geen probleem moeten zijn lijkt mij.

  • Juicy
  • Registratie: December 2000
  • Laatst online: 17:18
AquilaDus schreef op 02 juni 2004 @ 06:31:
Heeft iemand een idee waar deze exception vandaan komt en hoe ik dit probleem kan oplossen?
Breakpoint zetten op de betreffende regel ?
Lijkt me wel de meest logische actie ... Daarna even kijken of je objecten wel een waarde hebben.

-


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Je List zal null zijn oid.

Zoals Juicy al zegt kan je je code ook wel zelf debuggen en nagaan wat er die nullreference-exception veroorzaakt. Dit zijn gewoon dingen die je zelf moet kunnen zoeken.
Een bepaald object zal niet gealloceerd zijn.

https://fgheysels.github.io/


  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Misschien deze constructor toevoegen?
code:
1
2
3
public VraagCollectie() : base()
{
}

  • AquilaDus
  • Registratie: Januari 2004
  • Laatst online: 21-03 00:33
Je zou inderdaad denken dat er iets niet geinitialiseerd is.

Het zetten van een breakpoint heb ik al geprobeerd en zowel de lijst als het in te voegen object bestonden.
Het vreemde is ook dat InnerList.Add wel gewoon werkt.

Ook heb een constructor toegevoegd, maar deze veranderde ook niks aan de zaak. Ik heb een aantal weken zo'n zelfde klasse geimplementeerd en toen heb ik dit probleem niet gehad. Ik vind het dan ook vreemd dat InnerList wel te gebruiken is, maar List niet.

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Ik heb het net zelf geprobeerd en dit werkt iig wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;

namespace TestBla
{
    /// <summary>
    /// 
    /// </summary>
    public class VraagCollectie : System.Collections.CollectionBase
    {

    public VraagCollectie() : base()
    {
    }

        public void Add(Object obj)
        {
            List.Add(obj);
        }
    }
}

code:
1
2
VraagCollectie vc = new VraagCollectie();
vc.Add(new Object());

  • AquilaDus
  • Registratie: Januari 2004
  • Laatst online: 21-03 00:33
De oplossing is gevonden. De oorzaak was de OnInsert methode, alleen jammer dat de debugger dat niet aangaf.
Pagina: 1