Autor Beitrag
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 21.07.08 14:41 
Hallo Leute,
hätte da mal eine Frage bezüglich ArrayListen.
Das ganze ist eine Applicatioen für ein PDA.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
User user;
ArrayList list = new ArrayList();
for (int i = 0; i< 100;i++)
{
  user = new User(x,y,z);
  list.add(user);
}

das ist nur ein vereinfachtes Beispiel, aber im grunde macht es genau das was ich brauche, es legt eine Objekt referenz in eine arrayliste.
Aber nachdem ich nun beim 2. durchlauf bin und will nun die liste per debug kontrollieren, geht alles schieff. Bei jedem versuch auf den Inhalt der Liste zu zugreifen, welche objekte nun darin enthalten sind (es sind objekte enthalten) bricht er ab. Keine fehlermeldung nichts. Immer wenn ich auf den Inhalt der objekte zugreifen will.
Kann es sein, das er die referenz nicht sauber da rein schreibt ?

gruss

edit:
bei weiteren debugs, habe ich nun festegestellt, das der fehler schon in der erstellung des Objektes liegt.

der vollständige code sieht so aus ich entdecke einfach den fehler nicht:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
  User user;
            Markt markt;
            ArrayList list = new ArrayList();
                    
            marktgebuehr_update markt_u = new marktgebuehr_update();
XmlElement root = GetResponseDom(markt_u.getKatalog(methode));

                
                foreach (XmlNode @data in root[methode].ChildNodes)
                {
                    if (methode.Equals("benutzer"))
                    {
                        user = new User(@data["loginname"].InnerText, @data["pwd_md5"].InnerText, Convert.ToInt32(@data["id"].InnerText));
                        MessageBox.Show(user.uLoginName.ToString());
                        list.Add(user);
                    }
                    else
                    {
                        markt = new Markt(Convert.ToInt32(@data["id"].InnerText), @data["name"].InnerText, Convert.ToDouble(@data["preis"].InnerText));
                        list.Add(markt);
                    }
                    
                }

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.07.08 14:54 
Irgendwie kann ich jetzt nicht erkennen, wo in Deinem "großen" Quelltext nun welcher Fehler kommt :gruebel:

Aber eines kann ich Dir sagen: Die ArrayList ist veraltet, stammt noch aus .NET 1.1. Seit .NET 2.0 gibt es als Ersatz die generische List<T>. Die spart Dir hinterher viel rum-gecaste.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 21.07.08 15:02 
ach nach der habe ich schon gesucht :D

hab schon gedacht c# hätte sowas nicht :>


aber zu dem problem: Also ich kann mir das auch nicht erklären.
Der erstellt mir einfach kein User Objekt -.-

edit:
ich hab das ganze mal abgefangen, also die exceptions und da spuckt er mir ein stackoverflow aus °°
woher kommt das denn °°

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)


Zuletzt bearbeitet von foxy am Mo 21.07.08 15:04, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.07.08 15:04 
Dann setz doch mal einen Haltepunkt im Konstruktor der User-Klasse und schau, wo es knallt :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 21.07.08 15:12 
Also es knallt direkt nach der ersten zuweisung der Variablen...

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
class User
    {
        private string loginName, pw;
        private int id;

        public User(string loginName, string pw, int id)
        {
            this.id = id; //hier schon
            this.pw = pw;
            this.loginName = loginName;
        }


        public int uID
        {
            get
            {
                return this.id;
            }
            set
            {
                this.id = value;
            }
          
        }

        public string uLoginName
        {
            get
            {
                return this.uLoginName;
            }
            set
            {
                this.uLoginName = value;
            }
          
        }

        public string upw
        {
            get
            {
                return this.pw;
            }
            set
            {
                this.pw = value;
            }
           
        }

    }

Also die übergabe Parameter sind korrekt auch mit werten gefüllt und die richtigen Typen.
Also das Objekt erstellen kann ich ... wenn ich teste mit festen werten gehts ...

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.07.08 15:14 
Und @data["id"].InnerText enthält auch einen gültigen Int32, sodass Convert.ToInt32 keine Exception wirft?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 21.07.08 15:17 
nein wirft keine exception.
Aber bin weiter am debuggen und habe nun festegestellt, das er absolut kein objekt von der klasse user erstellt auch nicht mit festen werten.

Bei einem test

ausblenden C#-Quelltext
1:
2:
User user1 = new User("test","test2",1);
MessageBox.Show(user1.uLoginName.toString());

crasht er ebenfalls -.- stack overflow exception

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.07.08 15:21 
So, hab's jetzt mal bei mir ausprobiert. Der Fehler ist eigentlich ganz eindeutig. ;)
Der Getter von uLoginName liest uLoginName liest uLoginName liest uLoginName ........

Man benutzt übrigens in C# keine Prefixe wie "u". Höchstens für private Felder mal ein "_", aber nicht für Properties.

//edit: Satzreihenfolge korrigiert ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 21.07.08 15:25 
na geil :> ja super denke das wird er wohl gewesen sein

dank dir ... da hätt ich noch stunden gesucht :>

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)