为什么以下会产生编译器错误:
public interface OwnSession : ISession { }
[...]
OwnSession s = SessionFactory.OpenSession(); // compiler error (in german unfortunately)
[...]
“SessionFactory”在“OpenSession()”(NHibernate)上返回“ISession”
最佳答案
我猜是因为 OwnSession 可能是一个比 ISession 更大/不同的界面?
想象一下,如果 OwnSession 从 ISession 继承,但还添加了另一个方法签名..那么 SessionFactory.OpenSession 方法返回的 ISession 将与 OwnSession 定义的契约匹配(或者它可以,但不一定,取决于返回的实际具体类型.. . 编译器不知道)
关于C#接口(interface)继承(基本),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2432773/