Использование неназначенного параметра

1

Я передаю список данных для дальнейшего анализа

public void MyMethod()
{
    var urls = new List<MyUrl>();
    ...
    ExtractData(out urls);
}

private static void ExtractData(out urls)
{

   ...
   foreach(var item in items)
   {
       urls.Add(new MyUrl{ Url = item.Url });
   }       
}

Я получаю ошибку vs

Использование непризнанного параметра "urls"

Почему я получаю эту ошибку, так как я назначаю новый объект в существующий список?

  • 1
    Параметр out предполагается установить в методе ExtractData. Параметры out нельзя использовать для передачи ввода от вызывающей стороны, но это строго для получения вывода из вызываемого метода.
  • 0
    Похоже, вам не хватает названия метода здесь private static void(out urls)
Показать ещё 3 комментария
Теги:
oop
url

1 ответ

5
Лучший ответ

Внешняя переменная должна быть определена под вызываемым методом.

http://msdn.microsoft.com/en-us/library/t3c3bfhx.aspx

Хотя переменные, переданные как внешние аргументы, не должны быть инициализированы перед передачей, вызываемый метод должен назначать значение перед возвратом метода.

Таким образом, вы должны написать:

public void MyMethod()
{
    List<MyUrl> urls = null;
    ...
    ExtractData(out urls);
}
private static void(out List<MyUrl> urls)
{
  urls = new List<MyUrl>();
   ...
   foreach(var item in items)
   {
       urls.Add(new MyUrl{ Url = item.Url });
   }       
}
  • 0
    Это перемещает ответственность за создание Списка, и это было бы намного проще как функция с return .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню