Es geht darum zwei Klassen zu erstellen eine Kamel Klasse und eine Karawane Klasse. Die Karawane Klasse kann dann Kamel hinzufügen löschen und weitere Funktionen durchführen. Wenn die das Programm mit den fertigen Klassen kompiliere dann funktioniert alles. Wenn ich jedoch das Programm teste kriege ich folgende Fehlermeldung:
Code: Alles auswählen
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei Kamel.Caravan.pace() in c:\Users\Jakob\Documents\SharpDevelop Projects\Kamelle\Kamelle\Program.cs:Zeile 69.
bei Kamel.Program.Main(String[] args) in c:\Users\Jakob\Documents\SharpDevelop Projects\Kamelle\Kamelle\Program.cs:Zeile 134.
mein Code:
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Kamel
{
class Camel
{
private int maxspace = 0;
private int load = 0;
private Camel next;
public Camel(int mp)
{
maxspace = mp;
load = 0;
}
public int maxPace()
{
return maxspace;
}
public int pace()
{
return maxspace - load;
}
public void setLoad(int i)
{
if(i>0)
load = i;
}
public void addLoad()
{
load++;
}
public int getLoad()
{
return load;
}
public void setNext(Camel c)
{
if(c == null)
next = c;
}
public Camel getNext()
{
if (next == null)
return null;
return next;
}
}
class Caravan
{
private Camel first;
private Camel current;
private Camel last;
public Caravan()
{
}
public int pace()
{
int temp = 0;
Camel das = first;
temp = das.pace();
while (das != last)
{
if (temp > das.pace())
temp = das.pace();
das = das.getNext();
}
return temp;
}
public void addCamel(Camel c)
{
if (first == null)
first = c;
last = c;
if (current == null)
current = c;
else
{
current.setNext(c);
current = c;
}
}
public void removeCamel(Camel c)
{
Camel das = first;
while (das != c)
{
das = das.getNext();
}
Camel temp = das;
das = das.getNext();
das = das.getNext();
temp.setNext(das);
}
public void unload()
{
Camel das = first;
while (das != last)
{
das.setLoad(0);
das = das.getNext();
}
}
public void addload()
{
Camel once = first;
Camel nix = first;
while(once != first)
{
once = once.getNext();
if(nix.pace() < once.pace())
nix = once;
}
nix.addLoad();
}
}
class Program
{
static void Main(string[] args)
{
Camel wasweis = new Camel(8);
Camel lol = new Camel(6);
Camel baba = new Camel(10);
Caravan meins = new Caravan();
meins.addCamel(wasweis);
meins.addCamel(lol);
meins.addCamel(baba);
Console.WriteLine("{0}",meins.pace());
Console.ReadKey();
}
}
}
Ich hoffe jemand kann mir helfen.