Desidero completare la classe List
con la mia classe personalizzata. Per ora ho qualcosa del genere;Wrapping List.Add() restituisce - Il riferimento all'oggetto non è impostato su un'istanza di un oggetto
public class PriorityListOfNodes
{
private List<Node> list_;
private IComparer<Node> sorter_;
public List<Node> List_ {
get {return list_;}
set {list_ = value;}
}
public PriorityListOfNodes()
{
sorter_ = new NodeSorter_fValueDescending();
}
public Node PopFromEnd()
{
Node temp = new Node (list_ [list_.Count - 1]);
list_.RemoveAt (list_.Count - 1);
return temp;
}
public Node PeekFromEnd()
{
return list_ [list_.Count - 1];
}
public void Add (ref Node toAdd)
{
Debug.Log (toAdd);
list_.Add (toAdd);
list_.Sort (sorter_);
}
}
Quando faccio ora
Node temp = new Node(10,20); //custom constructor
PriorityListOfNodes l = new PriorityListOfNodes();
l.add(temp);
ottengo un'eccezione di runtime:
riferimento non impostato a un'istanza di un oggetto
Ho anche provato colpo ref
ma con lo stesso risultato. Cosa sto facendo di sbagliato qui?
Stile di denominazione molto strano .. di solito i campi privati hanno il prefisso di sottolineatura, o non hanno alcun prefisso –
@lazyberezovsky Ho usato i prefissi usati ma ci vuole più tempo per scrivere (finisci la parola autocomplete). – Patryk