Я пытаюсь написать функцию расширения safeAdd для класса List, поэтому, если он еще не инициализирован - инициализируйте его и добавьте новое значение. Но после того, как я вернусь из метода расширения, мой только что инициализированный список станет нулевым. Что не так?
Тестовый класс:
private class Test
{
public Test()
{
Id = Guid.NewGuid();
//items = new List<string>();
}
public Guid Id { get; set; }
public List<string> items { get; set; }
}
Класс расширений:
public static class Helpers
{
public static void safeAdd<T>(this List<T> list, T item)
{
if (list == null)
list = new List<T>();
list.Add(item);
}
}
Часть основного:
Test t = new Test();
t.items.safeAdd("testWord");
//Here t.items == null; WHY?