【发布时间】:2011-12-26 19:45:51
【问题描述】:
我正在尝试为 List 类编写 safeAdd 扩展函数,所以如果它尚未初始化 - 初始化它并添加新值。但是在我从扩展方法返回后,我刚刚初始化的列表等于 null。怎么了?
测试类:
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?
【问题讨论】: