2011-11-02 115 views
1

我有一個方法,我試圖添加另一個方法作爲列表變量,以便我可以爲每個文件添加多個錯誤。我目前正在將文件列表變量傳遞給多個不同的函數。我希望Error變量包含在文件中,但我一直無法弄清楚。謝謝!C#在另一個方法變量內部構建一個方法變量

class AllFiles 
    { 
     public string FileName { get; set; } 
     public string FileType { get; set; } 
     ... 
     public List<ErrorClass> Error { get; set; } 
    } 

    class ErrorClass 
    { 
     public int ErrorCode { get; set; } 
     public int Total { get; set; } 
     public string ErrorMessage { get; set; } 
     ... 
    } 

我使用以下命令將我的文件初始化爲列表,以便我可以添加多個文件。

 List<AllFiles> files = new List<AllFiles>(); 
     files.Add(new AllFiles()); 

我想它看起來像如下:

files[0] 
    Error[0] 
    Error[1] 
files[1] 
    Error[0] 
    Error[1] 
    Error[2] 
files[2] 
    Error[0] 
    ... 
+1

你有什麼問題(除了使用「不常見」的術語)? –

+0

'AllFiles'類應該被命名爲'File'或類似的東西。這不是複數,它不是「全部」。 – SLaks

回答

3

您需要創建的List<ErrorClass>(理想)的實例AllFiles類中的構造函數,並將其分配給Error財產。

其他一些建議:

  • AllFiles不是代表一個文件中的類一個好名字
  • ErrorClass可以也許只是被稱爲ErrorFileError
  • Error物業內AllFiles應被命名爲Errors,並應該有一個私人二傳手。

例如爲:

class MyFile { 
    public MyFile() { 
    Errors = new List<MyFileError>(); 
    } 

    public string Name { get; set; } 
    public string Type { get; set; } 
    ... 
    public List<MyFileError> Errors { get; private set; } 
} 

class MyFileError { 
    public int Code { get; set; } 
    public int Total { get; set; } 
    public string Message { get; set; } 
    ... 
} 

根據你的設計,你可以更好地封裝錯誤列表裏面MyFile,只是露出IEnumerable<MyFileError>AddError(MyFileError)方法。

+1

你正在隱藏一個局部變量的屬性。我添加了一些代碼。希望它澄清事情... –

+0

謝謝,我沒有意識到這是那麼容易。最終AllFiles將包含多個文件。 – buzzzzjay

相關問題