论坛上充斥着关于此类问题的帖子。我红了一些,但没有设法解决我自己的问题。我收到异常错误:
对象引用未设置为对象的实例。
try
{
CZaposleni zap = new CZaposleni();
zap.Sifra = "1234567894567";
zap.Ime = "testIme";
zap.Prezime = "testPrezime";
zap.Pol = Char.Parse("M");
zap.JMBG = "1234567899871";
zap.Brknjizice = "12345";
zap.SS = "4.test";
zap.DatumR = DateTime.Parse("4/11/2013");
zap.DatumZ = DateTime.Parse("4/11/2013");
zap.Mestorodj = "testMesto";
zap.Prebivaliste = "testPrebivaliste";
zap.Kontakt1 = "654987";
zap.Kontakt2 = "564845";
CRadnaMesta rad = new CRadnaMesta();
rad.ID = Int32.Parse(cbRadnaMesta.SelectedValue.ToString());
Console.WriteLine("Zap = "+zap.ID +" Rad = "+rad.ID);
zap.Radnomesto = rad;
Console.WriteLine("Zap check 1: " + zap.ID + " " + zap.Radnomesto.ID);
zap.dodajRadnika();
Console.WriteLine("Zap check 2: "+zap.ID+" "+zap.Radnomesto.ID);
}
catch (Exception ex)
{
MessageBox.Show("Frm: "+ex.Message);
}
代码在 'zap 处中断。Radnomesto = rm;' 因为运行代码时的最后一个输出是
rm.ID = 1
zap.ID = 0
因此,两个对象都不是空的。
我相信
您的错误在以下代码中的CZaposleni
类中:
public CRadnaMesta Radnomesto
{
get
{
return radnomesto;
}
set
{
if ( radnomesto.ID == 0 )
throw new Exception("Morate uneti radno mesto.");
radnomesto = value;
}
}
更准确地说,在if ( radnomesto.ID == 0 )
.由于如果未设置radnomesto
为 null,因此在检查 ID 时会收到错误。
应改用以下代码:
public CRadnaMesta Radnomesto
{
get
{
return radnomesto;
}
set
{
if ( value == null || value.ID == 0 )
throw new Exception("Morate uneti radno mesto.");
radnomesto = value;
}
}