如何从运行时已知的类派生一个类,该类实现编译时已知的接口

时间:2014-02-18 22:02:26

标签: c# generics inheritance

我想我会更容易写下我的伪类声明。

基本上,我想要像

这样的东西
public class DatabaseControlsDAL<T> : T, IDatabaseControlsDAL where T : IBaseDAL
{
   public int myMethod()
   {
      return somePublicPropertyInTheIBaseDALInterface;
   }
}

但它不起作用:(

欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

泛型不是运行时功能,因此提供通用参数不会是运行时问题

另一方面,一个类如何继承只在运行时才知道的内容?认为C#是一种强类型语言。

如果B继承A,但A是“未知”,那么,直到运行时,B将不是A类。这会破坏继承点和多态性。

结论:如果你没有提供背景知识来让我们定义一个更好的解决方案(好吧,现有的解决方案!),你会得到这样的答案:你无法实现你的目标在C#中寻找