我想提取一个需要初始化的类的接口(interface)。
public class Example<T>
{
public Example(SomeData data)
{
// initialize self with data
}
public IEnumerable<T> GetObjects(SomeData data)
{
// extract data
}
}
问题是我们无法编写一个强制使用非默认类型构造函数的接口(interface)。我当然可以将我的类(class)更改为:
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
,这将导致实例未初始化的异常。
我还有哪些其他选择?
最佳答案
因为这只是一个接口(interface),所以您不应该关心构造函数。该接口(interface)定义了实现可以做什么,但没有具体说明它们是如何做的或调用了哪些顺序方法。
你怎么能现实地说将来不会有一些工作方式不同且不需要构造函数的接口(interface)实现?
关于c# - 需要初始化的接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670732/