例如,考虑一个实用程序类SerializableList
:
public class SerializableList : List<ISerializable>
{
public T Add<T>(T item) where T : ISerializable
{
base.Add(item);
return item;
}
public T Add<T>(Func<T> factory) where T : ISerializable
{
var item = factory();
base.Add(item);
return item;
}
}
通常我会这样使用它:
var serializableList = new SerializableList();
var item1 = serializableList.Add(new Class1());
var item2 = serializableList.Add(new Class2());
我也可以通过分解使用它,如下所示:
var serializableList = new SerializableList();
var item1 = serializableList.Add(() => new Class1());
var item2 = serializableList.Add(() => new Class2());
第二种方法似乎是首选的使用模式,因为我最近注意到 SO。真的是这样(为什么,如果是的话)还是只是口味问题?