多语言展示
当前在线:266今日阅读:179今日分享:36

Should have done的用法

大家都知道,should have done最典型的用法就是表示与过去事实相反的情形,意思是“本来应该做了某事但实际没有做”。请看例句。1. a. It was an easy test and heshould have passed, but he didn’t.那个测试很容易,他本来应该通过的,但却没有。这里的should have passed是虚拟用法:本来预期他能通过,但事实上没有,即已经知道结果或事实与预期不符。Should have done的推测用法我们可以用should来谈论预期的、意料的事情。此时,should do是对现在或将来的预期,而should have done是对过去事情的推测。请把上面的a句与下面的b句进行比较。1. b. It was an easy test and heshould have passed, but I don’t know for sure.那个测试很容易,他应该通过了,但我也不确切知道结果。这里是should have done的推测用法。它与虚拟用法的一个根本不同在于,推测是不知道确切的结果,而虚拟是已经知道结果或事实与预期不符。再请看其他例句。2. It should be a nice day tomorrow.明天应该是个好天气。3. Try phoning John; he should be home by now.试着给约翰打个电话,他现在应该在家里。这里例句2、3中的should be分别表示对将来和现在的推测。下面我们来看should have done对过去事情进行推测的例句。4. Heshould have arrivedat his office by now. Let’s try ringing him.他现在应该已经到办公室了,咱们试着给他打个电话。5. The meetingshould have finishedby now.会议现在应该已经结束了。我们也可以用should not have done来推测过去某事未发生,请看下面两个例句。6. Johnshouldn’t have leftwork yet. I’ll call his office.约翰现在应该还没有下班,我这就给他办公室打电话。7. Theyshouldn’t have sentthe report off for printing yet. There is still time to make changes.他们应该还没有把报告拿去打印,还有时间修改。从以上例句我们看到,推测用法的should have done不同于虚拟用法,不能译成“本来应该做但实际没有做”;同样,推测用法的shouldn’t have done不能译成“本来不应该做但实际做了”。should have done的惊讶用法请把上文例1的a、b两句与下面c句进行比较。1. c. It was an easy test. I’m surprised that heshouldn’t have passedit.那个测试很容易,我很惊讶他竟然没有通过。由此可见,这个句子中的should have done既不是虚拟,也不是推测,而是谈论过去事实,并且表达了“惊讶”的情绪。这是在谈论与预期不符的事实。
推荐信息