请考虑以下代码:
public class AsyncRequestHandler : IHttpAsyncHandler
{
public void EndProcessRequest(IAsyncResult result)
{
if (result == null)
{
...
}
...
}
}
ReSharper建议result
永远不会是null
(通过指示条件始终为假)。但是,由于IAsyncResult
是引用类型,null
是可能的值。我提出了两种可能性:
result
永远不会是null
。使用ReSharper查看IHttpAsyncHandler
源代码,我看不到与EndProcessRequest
相关联的任何属性。IHttpAsyncHandler
保证IAsyncResult
永远不会null
。但是,documentation无法提供任何线索。 IAsyncResult
不会为null似乎是合理的,因为它允许我们跟踪异步任务的进度。有人可以提供一些见解吗?
答案 0 :(得分:0)
IHttpAsyncHandler
是旧式Asynchronous Programming Model的示例。
也许ReSharper旨在识别模式。
注意:
未定义使用相同
IAsyncResult
多次调用结束 OperationName 方法的效果。同样,也未定义使用相关开始方法未返回的IAsyncResult
调用结束 OperationName 方法。< / p>
因此,您不必编写代码来处理不正确调用您的代码的人,遵循此模式。