2013-01-08 38 views
0

我想創建一個通用的記錄類。這抱怨「值不能爲空。參數名稱:路徑」。在我初始化對象後,我得到了logname值,但沒有記錄。我在哪裏做錯了?c#的構造函數和streamwriter

class Logger 
{ 

    public static string log; 


    public Logger(string logname) 
    { 
     log = logname; 

    } 
    StreamWriter writer = new StreamWriter(log); 
} 
+0

對於你的類,內存被分配,數據成員被初始化,然後調用構造函數。 –

回答

10

試試這個:

... 
    public Logger(string logname) 
    { 
     log = logname; 
     writer = new StreamWriter(log); 
    } 
    StreamWriter writer = null; 
... 

你有這樣的錯誤,因爲第一個被執行下面一行:

StreamWriter writer = new StreamWriter(log); 

在那一刻現場日誌,因爲構造函數是後場的初始化執行爲空。

+1

我會注意到,將'writer'字段初始化爲'null'是不必要的;字段始終被初始化爲默認值。 – phoog