Я передаю список данных для дальнейшего анализа
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"
Почему я получаю эту ошибку, так как я назначаю новый объект в существующий список?
Внешняя переменная должна быть определена под вызываемым методом.
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 });
}
}
return
.
out
нельзя использовать для передачи ввода от вызывающей стороны, но это строго для получения вывода из вызываемого метода.private static void(out urls)