2017-05-02 39 views
0

接口无法实例化,但在asp.net中的Context.Handler的返回类型是IHttpHandler,它是一个接口!接口实例ASP .net

Context.Handler如何返回接口的对象?

+0

它返回一个实现了IHttpHandler接口的对象实例。 –

回答

3

不是。它返回一个实现该接口的类的实例。如果在调试时检查返回值,则可以看到确切的返回类型 - 返回类型可以是实现该接口的任何类。

1

这只是告诉你,返回类型必须是IHttpHandler

更具体的和可控的例子:

public interface IFoo { } 
public class Foo : IFoo { } 
public class Bar : IFoo { } 

public class Whatever 
{ 
    public IFoo GetAFoo(bool thing) 
    { 
     if (thing) 
      return new Foo(); 
     else 
      return new Bar(); 
    } 
} 

两个FooBar正在实施IFoo,所以是一个IFoo返回类型有效的回报。