选D.
考察虚拟语气
表示与过去事实相反的情况
从句:If 主语+had+done
主句:主语+should/would/could/might+have done
eg:
1. If I had got there earlier,I should/could have met her.如果我早到那儿,我就会见到她.
(事实:去晚了)
2.If he had taken my advice,he would not have made such a mistake.如果他听我的劝告的话,就不会犯这样的错误了.
(事实:没有听我的话)