考虑以下代码:
public class AsyncRequestHandler : IHttpAsyncHandler
{
public void EndProcessRequest(IAsyncResult result)
{
if (result == null)
{
...
}
...
}
}
ReSharper 建议result
永远不会null
(通过指示条件始终为假)。但是,因为IAsyncResult
是引用类型,null
所以是可能的值。我想出了两种可能:
- 某种可用的元数据允许 ReSharper 得出结论,这
result
是永远不可能的null
。查看IHttpAsyncHandler
使用 ReSharper 的源代码,我没有看到任何与EndProcessRequest
. - ReSharper 知道这些
IHttpAsyncHandler
保证IAsyncResult
永远不会是null
. 但是,无论哪种方式,文档都没有提供任何线索。
IAsyncResult
不会为 null似乎是合理的,因为它允许我们跟踪异步任务的进度。有人可以提供一些见解吗?