C # Построение переменной метода внутри другой переменной метода - PullRequest
1 голос
/ 02 ноября 2011

У меня есть метод, и я пытаюсь добавить другой метод в качестве переменной списка, чтобы я мог добавить несколько ошибок для каждого файла.В настоящее время я передаю переменную списка файлов для нескольких различных функций.Я хотел бы, чтобы переменная Error содержалась в файлах, но я не смог понять это.Спасибо!

    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 Ответ

3 голосов
/ 02 ноября 2011

Вам необходимо создать экземпляр List<ErrorClass> (в идеале) внутри конструктора AllFiles class 'и назначить его свойству Error.

Некоторые другие рекомендации:

  • AllFiles не подходит для класса, представляющего one file
  • ErrorClass можно просто назвать Error или FileError
  • Свойство 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).

...