我想提取需要初始化的类的接口。
public class Example<T>
{
public Example(SomeData data)
{
// initialize self with data
}
public IEnumerable<T> GetObjects(SomeData data)
{
// extract data
}
}
问题是我们不能编写一个强制非默认类型构造函数的接口。我当然可以将我的课程改为:
public interface IExample<T>
{
void Initilize(SomeData data);
IEnumerable<T> GetObjects(SomeData data);
}
public class Example<T> : IExample<T>
{
public void Initilize(SomeData data)
{
// initialize self with data
}
public IEnumerable<T> GetObjects(SomeData data)
{
// extract data
}
}
但这不一样,因为当实例化这种类型时,可以直接调用GetObjects
它,然后会导致实例未初始化的异常。