2011-11-02 3 views
1

메서드가 있는데 파일 당 여러 개의 오류를 추가 할 수 있도록 다른 메서드를 목록 변수로 추가하려고합니다. 나는 현재 여러 다른 기능에 파일 목록 변수를 전달하고있다. 오류 변수를 파일에 포함하고 싶습니다만, 알아낼 수 없습니다. 감사!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

당신은 AllFiles 클래스 내부의 List<ErrorClass> (이상적)의 인스턴스를 생성해야 '생성자 및 Error 속성에 할당 .

일부 다른 권고 사항 :

  • AllFiles

    하나 파일을 나타내는 클래스에 대한 좋은 이름이 아닙니다
  • ErrorClass 어쩌면 그냥 Error 재산 AllFiles 내부 Error 또는 FileError
  • 를 호출 할 수
  • 해야 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

관련 문제