インターフェイスはインスタンス化できませんが、asp .netのContext.Handlerの戻り値の型はインターフェイスのIHttpHandlerです!インターフェイスインスタンシエーションASP .net
Context.Handlerはインターフェイスのオブジェクトをどのように返すのですか?
インターフェイスはインスタンス化できませんが、asp .netのContext.Handlerの戻り値の型はインターフェイスのIHttpHandlerです!インターフェイスインスタンシエーションASP .net
Context.Handlerはインターフェイスのオブジェクトをどのように返すのですか?
そうではありません。そのインターフェイスを実装するクラスのインスタンスを返します。デバッグ中に戻り値を調べると、正確な戻り値の型がわかります。戻り値の型は、そのインタフェースを実装するANYクラスになります。
これは、戻り値の型が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();
}
}
Foo
とBar
両方がIFoo
を実装しているので、IFoo
戻り型の有効なリターンです。
これは、 'IHttpHandler'インタフェースを実装しているオブジェクトのインスタンスを返しています。 –