2015-10-14 85 views
0

嘗試創建一個自定義對象,該對象將允許我在記錄中拾取錯誤。將值分配給屬性時出現空錯誤

public class gridIntegerField 
{ 
    private int value; 
    private bool isValid; 
    private string message; 



    public int Value 
    { 
     get { return this.value; } 
     set { this.value = value; } 
    } 
    public bool IsValid 
    { 
     get { return isValid; } 
     set { isValid = value; } 
    } 
    public string Message 
    { 
     get { return message; } 
     set { message = value; } 
    } 


} 

public class gridRecord  
{ 
    private gridIntegerField printRun; 

    public gridIntegerField PrintRun 
    { 
     get { return printRun; } 
     set { printRun = value; } 
    } 

} 

當創建對象,試圖把我得到如下因素誤差值...

型「System.NullReferenceException」未處理的異常發生在基於XML Console.exe

代碼爲創建對象...

gridRecord spr = new gridRecord(); 
spr.PrintRun.Value = 200; 
spr.PrintRun.IsValid = true; 
spr.PrintRun.Message = "No Errors"; 

Console.WriteLine(spr.PrintRun.Value.ToString()); 
Console.WriteLine(spr.PrintRun.IsValid.ToString()); 
Console.WriteLine(spr.PrintRun.Message.ToString()); 
Console.ReadKey(); 

錯誤發生在這行代碼

spr.PrintRun.Value = 200; 
+0

spr.PrintRun = new gridIntegerField()add before assign value –

回答

0

因爲在gridRecord實例化後沒有實例化printRun字段。

你可以在構造方法中做到這一點。

public class gridRecord  
{ 
    private gridIntegerField printRun; 

    public gridIntegerField PrintRun 
    { 
     get { return printRun; } 
     set { printRun = value; } 
    } 

    //Add a constructor method 
    public gridRecord() 
    { 
     //and instantiate the printRun. 
     printRun = new gridIntegerField(); 
    }  
} 
相關問題