2012-03-26 128 views
0

我有一個靜態類,看起來像這樣:的NullReferenceException靜態類屬性

namespace Argus 
{ 
    static class Argus 
    { 
     public static List<Branch> myArgus; 
    } 
} 

和其他地方在我的代碼我有這樣的:

// Add this branch to myArgus 
Argus.myArgus.Add(branch); 

當我運行代碼,我得到這個錯誤:

Object reference not set to an instance of an object.

我已經驗證branch是有效的(它是Branch的對象類),並不知道這裏可能是錯誤的。我試圖從文本文件中讀取分支數據。

+1

爲什麼'myArgus'永遠是非空的?另外:不要這樣做。像這樣的靜態狀態幾乎總是真的很糟糕(無論是在隔離性和線程安全性方面) – 2012-03-26 19:42:12

回答

3

你需要實例化它;它的默認值是零,否則:

public static List<Branch> myArgus = new List<Branch>(); 
2

必須instansiate myArgus

public static List<Branch> myArgus = new List<Branch>(); 
2

你永遠爲myArgus分配內存。當然是null

public static List<Branch> myArgus = new List<Branch>(); 

您必須始終使引用指向內存中的已分配對象,否則將無法使用它們。試圖對不指向分配內存的引用調用操作將導致NullPointerException