System.Net.HttpListener仅显式实现IDisposable



为什么HttpListener显式实现IDisposable。这意味着在调用dispose之前必须强制转换为IDisposable,在我看来,这使得必须调用dispose的事实不那么明显。

  1. 如果使用using块,则不需要显式强制转换。(在可能的情况下,这是处理IDisposable对象的首选习惯用法。)

    using (HttpListener hl = /* ... */)
    {
        // ...
    }
    
  2. 它有一个Close方法,它几乎是Dispose的别名。(不是我最喜欢的模式,但框架设计师似乎很喜欢!)

    HttpListener hl = /* ... */
    try
    {
        // ...
    }
    finally
    {
        hl.Close();
    }
    

最新更新