考虑以下代码:
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似乎是合理的,因为它允许我们跟踪异步任务的进度。有人可以提供一些见解吗?