2009-10-12 56 views
2

我期待实现一个接口,它有一个函数,它将返回基类的类型而不使用通用接口。这可能吗?实现类的接口函数返回类型

class MyClass : MyInterface<MyClass> // Would rather use one below 

class MyClass : MyInterface // Functions already know to use MyClass 

回答

3

如果我正确理解你的问题,你没有泛型的唯一选择是使用反射来做到这一点。

2

你将不得不做这样的事情:

interface MyInterface 
{ 
    Type GetBaseType(); 
} 

但在这一点上它会更简单调用instance.GetType(),因为这是这种方法的实现将最有可能的样子。

如果“类型”你不是说反射型,而是你希望能够从接口静态编译时使用的类型,那么你将需要使界面通用。

1

要么

  1. 你硬编码的返回类型为MyClass的

  2. 您将返回类型定义为MyInterface的,然后在MyClass的执行可以返回一个MyClass的。调用者不会知道它是什么,但可以使用typeof来查明。

1

你实现这样的:

interface IUserService : IService<User> 

那么你的类将是:

class UserService : IUserService 
相关问题