Как лениво инициализировать общий List через расширение класса

Я пытаюсь написать функцию расширения 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?
7
задан Jentor 26 December 2011 в 19:45
поделиться