Ciao a tutti.
In fase di esecuzione testando delle classi mi dà questo errore. Mi era già successo altre volte, ma questa volta non riesco proprio a risolverlo.
Eseguendo questo codice
vado a richiamare la classe array così definitacodice:array arrayofitems = new array(); arrayofitems.array_add("host", "192.168.1.20");
dentro ci sono anche altri metodi che non ci interessano.codice:public class array { public int array_count; public arrayitem array_first; public arrayitem array_last; public debug array_debug; public array() { this.array_debug = new debug(debug.debug_type_file, lib.debug_default_file); this.array_first = new arrayitem(null, null, null, null); this.array_last = new arrayitem(null, null, null, null); this.array_count = 0; } public bool array_add(string pindex, string pvalue) { arrayitem lai, lai_temp; if (pindex == "") return false; if (this.array_index_exists(pindex)) return this.array_set(pindex, pvalue); if (this.array_count == 0) { this.array_first = this.array_last = new arrayitem(pindex, pvalue, null, null); this.array_count++; } else { lai = new arrayitem(pindex, pvalue, null, null); lai_temp = this.array_last; this.array_last = lai; this.array_last.ai_prev = lai_temp; lai_temp.ai_next = this.array_last; if (this.array_count == 1) this.array_first.ai_next = this.array_last; this.array_count++; } return true; } public bool array_index_exists(string pindex) { if (this.array_find(pindex).ai_index != null) return true; else return false; } public arrayitem array_find(string pindex) { arrayitem lai = new arrayitem(); lai = this.array_first; while (pindex != lai.ai_index) lai = lai.ai_next; return lai; /* try { } catch (Exception exc) { this.array_debug.debug_log("[ERROR][array.array_find] " + exc.Message); return new arrayitem(null, null); }*/ } [...] }//array
l'errore lo da sul metodo array_find() sulla riga
so che di solito questo errore viene dato quando non si inizializza con new qualcosa, ma io non riesco a capire dove.codice:while (pindex != lai.ai_index)
ho provato eccedendo di zelo ad inizializzare lai così
ma ovviamente la cosa non cambia.codice:arrayitem lai= new arrayitem(null, null, null, null)
pensavo che il problema fosse array_first, ma mi viene inizializzato da costruttore e valorizzato da array_add().
secondo voi dove è il problema?
grazie per l'attenzione e scusate la prolissità.
cyb

Rispondi quotando